Lio*_*ior 23 where belongs-to laravel eloquent
假设我有以下型号:
class Movie extends Eloquent
{
public function director()
{
return $this->belongsTo('Director');
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想使用基于director表中的列的where条件来获取电影.
有没有办法实现这个目标?无法找到有关基于属于关系的条件的任何文档.
The*_*pha 43
您可以尝试这个(在网站上查询查询关系Laravel):
$movies = Movie::whereHas('director', function($q) {
$q->where('name', 'great');
})->get();
Run Code Online (Sandbox Code Playgroud)
此外,如果您反转查询,如:
$directorsWithMovies = Director::with('movies')->where('name', 'great')->get();
// Access the movies collection
$movies = $directorsWithMovies->movies;
Run Code Online (Sandbox Code Playgroud)
为此,您需要hasmany在Director模型中声明一个关系:
public function movies()
{
return $this->hasMany('Movie');
}
Run Code Online (Sandbox Code Playgroud)
对于新版本的 Laravel,您可以使用whereBelongsTo().
它看起来像这样:
$director = Director::find(1);
$movies = Movie::whereBelongsTo($director);
Run Code Online (Sandbox Code Playgroud)
更多内容请参阅文档。
对于一对一关系is()可以使用。
$director = Director::find(1);
$movie = Movie::find(1);
$movie->director()->is($director);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32413 次 |
| 最近记录: |