![](/img/trans.png)
[英]Symfony 2.8: Form collection and one-to-many relationship not persisting correctly
[英]Querying a Collection of One-to-Many Relationship
假设我有一个User
模型和一个Post
模型。
class Post extends Eloquent
{
}
有很多用户,每个User
有很多Post
。 所有Post
属于一个User
。
class User extends Eloquent
{
public function posts()
{
return $this->hasMany('Post');
}
}
我知道我可以通过find()
获得一个User
。
$user = User::find(1);
我知道从一个User
,我可以获得他们所有的posts()
。
$posts = User::find(1)->posts;
但是,假设现在我有多个用户。
$users = User::all();
我希望访问此用户集合拥有的所有帖子。 类似的东西
$posts = User::all()->posts;
这当然行不通。 但是,理论上,它应该在功能上等同于
$posts = Post::all()
有没有办法在 Laravel 4.2 中做与上述类似的事情?
我不想使用Post::all()
。 原因是,在涉及User
约束的更复杂示例中,这不是我想要的。
$postsByMaleUsers = User::where('gender', '=', 'male')->posts;
应该得到男性用户发表的所有帖子。
我也知道我可以简单地使用foreach
循环。
foreach($users->posts as $post)
{
// Process result here.
}
但是,假设我试图返回结果而不是处理结果。 例如,我可以在User
模型中有一个public static function postsByMaleUsers()
,调用User::postsByMaleUsers()
应该只返回男性用户的帖子集合。 在这种情况下, foreach
循环不适合我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.