草庐IT

eloquent

全部标签

php - Laravel Eloquent 和复杂的关系

Laravel似乎是一个非常不错的PHP框架,捆绑了一个很好的ORM(Eloquent)。但是,laravel文档缺少一些东西。文档中仅包含基本内容。无论如何,当涉及Eloquent和模型关系时,当它跨越超过2个模型时,我遇到了问题。例如,我有以下场景。我有四个数据库表,即:users、locations、users_locations、packages。模型/表之间的关系如下:用户可以属于多个位置,反之亦然。一个位置可以有多个包。和我对应的模型关系如下://UserModel:publicfunctionlocations(){return$this->belongsToMany('

php - 如果在插入期间不在表中,Laravel Eloquent 忽略属性

我有一个模型Foo对应于一个包含以下列的表格。编号描述用户ID我正在单独设置Foo模型的属性(没有质量分配)$foo=newFoo;$foo->id=1;$foo->description="hellokitty";$foo->user_id=55;//...$foo被发送到另一个类进行额外处理,但是因为那个类需要更多信息,所以我想简单地将它添加到$foo模型中。//...$foo->bar=$additional_information;Event::fire(DoStuffWithFoo($foo));$foo->save();//error问题是当我$foo->save()时,它

php - Laravel Eloquent 用 child 保存一个对象

我正在尝试使用order_items保存一个order,但我在文档中没有真正找到任何支持此用例的内容。一个hasMany关系。基本上有一个orders表,其中包含id|user_id和带有id|的order_items表订单编号|product_id.如何save()顺序并同时使用一组项目,而不必遍历项目并单独保存它们?这可能吗?假设$items是一个数组的伪代码:$items=Session::get("cart.items");$order=newOrder;$order->user_id=Auth::user()->id;$order->order_items=$items;$o

php - 由于 updated_at 表歧义,Eloquent update() 失败

好的,这个问题源于Laravel4.1.23安装。我正在尝试在包含连接的查询中使用Eloquentupdate()方法更新多条记录:ChildSchoolYear::whereNull('exit_date')->join('school_years','child_school_years.school_year_id','=','school_years.id')->update(array('child_school_years.exit_date'=>'`school_years`.`end_date`','child_school_years.editor_id'=>$use

php - 在 Eloquent 中按自定义顺序对集合进行排序

这个问题在这里已经有了答案:SortingLaravelCollectionviaArrayofID's(3个答案)关闭12个月前。我有一个ID数组,如下所示:$ids=[5,6,0,1]使用Eloquent,我可以使用->whereIn('id',$ids)函数搜索这些ID。正如预期的那样,将按Id升序返回结果,有没有办法可以按数组的顺序返回结果?或者,按照$ids数组的顺序转换集合的最简单方法是什么?

php - Laravel Eloquent 急切加载 : Join same table twice

我有一个users表和一个appointments表。在约会表中,我有两个用户ID(customer_id、staff_id)。我想检索所有包含客户姓名和员工姓名的约会。userstableidnameappointmentstableidstaff_id(user_id)customer_id(user_id)datetime如您所见,我必须将users表与appointments表连接两次。通常,我使用内部联接来执行此操作。我们可以使用with()对LaravelEloquent预加载做同样的事情吗?我们可以这样做吗:appointments::with('users'*)->ge

php - Laravel Eloquent,只选择存在关系的行

我正在尝试从表中进行选择,但我只想选择具有现有关系的事物。例如,如果我有Users和Comments,而UsershaveManyComments,我想做这样的事情:User::hasComments()->paginate(20);所以,我只想选择至少有1条评论的用户,然后对该查询的结果进行分页。有什么办法吗? 最佳答案 根据Laravel的Eloquent文档queryingrelationshipexistence,你可以为此使用has()方法:User::has('comments')->paginate(20);

php - Laravel 4 Illuminate\Database\Eloquent\MassAssignmentException 错误

嘿,我已经在那里搜索了很多答案,但无法解决这个问题。这是我的迁移代码bigInteger('id')->primary();$table->tinyInteger('token');});}/***Reversethemigrations.**@returnvoid*/publicfunctiondown(){Schema::drop('activations');}}对于模型(models/Activation.php)我这样调用激活表。Activation::create(['id'=>2,'token'=>1231]);说真的,我不知道这里出了什么问题。我是laravel4的新手

php - Laravel Eloquent orWhere 查询

谁能告诉我如何用Eloquent编写这个查询?SELECT*FROM`projects`WHERE`id`='17'OR`id`='19'我在想Project::where('id','=','17')->orWhere('id','=','19')->get();在这种情况下,我的变量(17和19)也来自多选框,所以基本上是在一个数组中。关于如何循环并动态添加这些where/orWhere子句的任何线索?谢谢。 最佳答案 您可以通过三种方式进行。假设您有一个形式的数组['myselect'=>[11,15,17,19],'othe

php - laravel Eloquent 关系与基于外部列的 where 子句

您好,我想检索我的projects保存在一个数据库中,该数据库由authuser所有,他还创建了clients(他们有很多projectsandtasks)和tasks(属于一个projectandtasks和user)。我想检索状态表中未标记为已关闭的所有任务,我知道它的ID是2,我可以这样检索它:publicfunctiongetOpenProjects(){return\Project::with(['clients','tasks','status'])->where('status_id','!=','2')->whereUserId(Auth::user()->id)->g