Questions tagged «eloquent»

Laravel随附的Eloquent ORM为使用您的数据库提供了一个漂亮,简单的ActiveRecord实现。每个数据库表都有一个对应的“模型”,用于与该表进行交互。模型使您可以查询表中的数据,以及将新记录插入表中。

6
laravel集合到数组
我有两个模型,Post和Comment;许多评论属于一个帖子。我正在尝试以数组形式访问与帖子关联的所有评论。 我有以下内容,给出了一个集合。 $comments_collection = $post->comments()->get() 我如何将其$comments_collection转换为数组?是否有更直接的方式通过雄辩的关系访问此数组?
75 php  arrays  laravel  eloquent 

7
使用Eloquent获取模型子类型的实例
我有一个Animal基于animal表格的模型。 该表包含一个type字段,可以包含诸如cat或dog的值。 我希望能够创建如下对象: class Animal extends Model { } class Dog extends Animal { } class Cat extends Animal { } 但是,能够像这样取出动物: $animal = Animal::find($id); 但是在哪里$animal可以作为实例Dog或Cat取决于type字段,我可以检查使用instance of还是可以与类型提示方法一起使用。原因是90%的代码是共享的,但是一个可以吠叫,而另一个可以叫。 我知道我可以做到Dog::find($id),但这不是我想要的:我只能在提取对象后确定其类型。我也可以获取Animal,然后find()在正确的对象上运行,但是这样做是两个数据库调用,我显然不希望这样做。 我试图寻找一种方法来“手动”实例化Eloquent模型,例如Animal的Dog,但是我找不到对应的任何方法。我有什么想法或方法想念吗?
22 php  laravel  eloquent 

4
在Laravel中过滤权限时的最佳性能方法
我正在开发一个应用程序,在该应用程序中,用户可以通过许多不同的场景访问许多表单。当我向用户返回表单索引时,我试图构建具有最佳性能的方法。 用户可以通过以下方案访问表单: 拥有表格 团队拥有表格 拥有拥有表单的组的权限 拥有拥有表单的团队的权限 有权使用表格 如您所见,用户可以使用5种可能的方式来访问表单。我的问题是如何最有效地将一系列可访问的表单返回给用户。 表格政策: 我试图从模型中获取所有表单,然后通过表单策略过滤表单。这似乎是一个性能问题,因为在每次过滤器迭代中,表单都会通过一个contains()雄辩的方法传递5次,如下所示。数据库中的表单越多,意味着它变得越慢。 FormController@index public function index(Request $request) { $forms = Form::all() ->filter(function($form) use ($request) { return $request->user()->can('view',$form); }); } FormPolicy@view public function view(User $user, Form $form) { return $user->forms->contains($form) || $user->team->forms->contains($form) || $user->permissible->groups->forms($contains); } 尽管以上方法有效,但它是性能瓶颈。 从我可以看到的以下选项中: FormPolicy过滤器(当前方法) 查询所有权限(5)并合并到单个集合中 查询所有权限的所有标识符(5),然后使用IN()语句中的标识符查询Form模型 我的问题: 哪种方法可以提供最佳性能,还有其他选择可以提供更好的性能吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.