我正在测试用户是否已经在数据库中有记录(d).
我的查询:
$userResults = Results::where('d','=',Input::get('d'))
->where('user','=',Input::get('user'),'AND')->get();
Run Code Online (Sandbox Code Playgroud)
带var_dump回报
object(Illuminate\Database\Eloquent\Collection)#333 (1) { ["items":protected]=> array(0) { } }
Run Code Online (Sandbox Code Playgroud)
当空时或结果数组(如果有).
如何测试对象isset?
使用带有Eloquent的paginate时收到以下错误:
Argument 2 passed to Illuminate\Pagination\Factory::__construct() must be an instance of Illuminate\View\Factory, instance of Illuminate\View\Environment given, called in C:\****\vendor\laravel\framework\src\Illuminate\Pagination\PaginationServiceProvider.php on line 23 and defined
出于测试目的,这就是我在控制器方法中的全部内容:
return User::paginate(15);
Run Code Online (Sandbox Code Playgroud)
我从文档中了解升级过程,但我没有提到任何参考文献.
更新:
在我的特定情况下,工作台中有一个包需要Illuminate 4.1组件,我在composer.json中更改为4.2,删除了供应商目录和composer.lock文件,安装了作曲家,错误消失了.
这些操作都在包文件夹中完成.
是否可以在laravel模型中使用继承?我解释:
是否可以执行一个扩展雄辩类的模型?
class A extends Eloquent
{
}
class B extends A
{
}
Run Code Online (Sandbox Code Playgroud)
e B也是2个不同的表,B有A_id作为外键和其他字段.怎么可能是B级的构造函数?它是一种可行的解决方案还是更好地使用hasOne关系?
没有每个A对象也是B对象.ES.用户和老师
谢谢
我试图使用Laravel的Eloquent ORM和条件语句,例如,在Codeigniter中我可以使用以下语法来过滤我的数据库结果;
<?php
$this->db->select('*')->from('demos');
if (isset($data) && is_numeric($data) )
{
$this->db->where('type_id', $data);
}
if (isset($name) && is_string($name) )
{
$this->db->where('name', $name);
}
return $this->db->get(); ?>
Run Code Online (Sandbox Code Playgroud)
我尝试了同样的实现,似乎没有用; 如何使用Eloquent复制上述内容?
谢谢你的协助
我想在Laravel模型中添加一个函数,就像我在Rails中习惯的那样.
例如:
class Person < ActiveRecord::Base
def name
"#{firstname} #{lastname}"
end
end
Run Code Online (Sandbox Code Playgroud)
当我尝试在Laravel中使用相同的方法时,我得到以下异常:
Relationship method must return an object of type Illuminate\Database\Eloquent\Relations\Relation
Run Code Online (Sandbox Code Playgroud)
我如何在Laravel中获得这种行为?
为了更好地解释这个问题,我将举一个例子:
假设我有一个世界记录数据库,并希望为它创建一个api.假设我想添加一个接收search路径GET或POST参数(让我们保持简单,GET现在就说).是否有可能编写一个search控制器方法,它使用类似数组的东西作为Eloquent where方法的参数,同时还使用like参数(MySQL LIKE)?
我有以下工作,但仅适用于确切的值:
public function search()
{
$params = Input::all();
return Records::where($params)->get();
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Laravel框架,使用eloquent与我的数据库进行交互.
我有一个表格,我发布到我的控制器.此表单包含由用户添加的"标记".用户可以根据需要添加任意数量的标签.
我想POST标签,然后在我的控制器中,将每个标签插入一个新的表行,如下所示:
$tag = new Tag;
$tag->user_id = Input::get('user_id');
$tag->tag_name = Input::get('tag_name');
$tag->save();
Run Code Online (Sandbox Code Playgroud)
我该怎么处理?起初我想把每个标签放到一个数组中,POST数组,然后在控制器中我循环遍历每个元素,将它们插入数据库.
但经过一番搜索,我得出的结论是你不能发布一个数组.
所以另一种方法是将每个数组值作为隐藏表单类型POST.问题在于如何告诉我的控制器要插入多少个标签(以及它们的行).
我希望这很清楚,在此先感谢.
编辑:仍有一些麻烦
编辑2:更改了代码以在javascript中包含'i'变量以及POST时使用的新数组.
这是用户生成的输入标签的样子
$("#tagsbox")
.append("<div class='displaytag'><i>"+tag+"</i><input type='hidden' name='tags["+i+"]["+user_id+"]' value="+user_id+"><input type='hidden' name='tags["+i+"]["+tag+"]'value="+tag+">")
Run Code Online (Sandbox Code Playgroud)
这是提交后POST数据的样子
Array
(
[user_id] => 12
[lat] => 50.80589
[lng] => -0.02784
[spot_name] => test spot
[tags] => Array
(
[1] => Array
(
[12] => 12
[tag1] => tag1
)
[2] => Array
(
[12] => 12
[tag2] => tag2
)
[3] => Array
(
[12] => 12
[tag3] …Run Code Online (Sandbox Code Playgroud) 我很擅长使用Laravel,因此对Eloquent来说.我对Eloquent的桌子关系感到困惑.
现在我了解了如何实现简单连接,例如Laravel 4.2文档中的示例,该文档对于一对多关系,其中a comment属于一个post,但a post可以有很多comments.他们使用这种语法从一篇文章中获取评论:
Post::find(1)->comments;
Run Code Online (Sandbox Code Playgroud)
在MySQL中,它可能是:
SELECT * FROM comments
JOIN posts ON posts.id=comments.post_id
WHERE posts.id=1
Run Code Online (Sandbox Code Playgroud)
如果我想要得到的结果是这样的,不仅仅是一行:
SELECT * FROM comments
JOIN posts ON posts.id=comments.post_id
Run Code Online (Sandbox Code Playgroud)
根据我上面给出的例子,我知道它没有多大意义.但是我如何在Eloquent中做到这一点?
为了提供更多细节,我实际上要做的是显示我的两个表的连接结果,assets以及asset_classifications.一个asset属于一个asset_classification,并且asset_classification有许多assets.
我正在尝试显示assets包含其中的表格数据asset_classifications.在MySQL中,它是这样的:
SELECT * FROM assets
JOIN asset_classifications ON asset_classifications.id=assets.classification_id
Run Code Online (Sandbox Code Playgroud)
我怎样才能在Eloquent中执行它?
我正在尝试为以下sql进行elqouent查询,
select sum(w.total_item_count) as Day_count, w.created_at as created_at from `sales_flat_orders` as `w` group by DATE(`w`.`created_at`) order by `w`.`created_at` asc
Run Code Online (Sandbox Code Playgroud)
我试过这个
$orderbydate = DB::table('sales_flat_orders as w')
->select(array(DB::Raw('sum(w.total_item_count) as Day_count'),DB::Raw('DATE(w.created_at) as created_at')))
->groupBy('w.created_at')
->orderBy('w.created_at')
->get();
Run Code Online (Sandbox Code Playgroud)
我在sql查询中得到正确的输出,但没有在雄辩的查询中,请帮助,谢谢.
我正在尝试找到一种不同的方法来保存/更新给定模型及其与数据库的关系.
基本上我有一个"作者"页面的表格,可以添加多个"书籍".当然,"作者"和"书"模型具有一对多的关系.
根据laravel官方教程,您必须:
Laravel还指出"有时您可能希望不仅保存模型,还保存其所有关系.为此,您可以使用push方法:$ user-> push();" .
但我找不到任何关于如何用"Book"关系填充"Author"模型的教程,实际上使用了push()方法
我正在寻找这样的东西:
$author = new Author();
$author->name = "Bill Jobs";
$author->phone = "555 - 123456";
// fill model with relations
$author->addRelation($relationsArray)
if($author->push())
{
// ....
}
Run Code Online (Sandbox Code Playgroud)
同样应该用于更新"作者":首先删除已存储的关系,而不是保存新关系