我使用Laravel
和Eloquent
,并且希望通过关系从两个表中获取数据。
例如,我要选择类别status
处于活动状态的所有书籍。
class Book extends Model
{
public $belongsTo = [
'category' => '..\Models\Categories',
];
public function categories() {
return $this->belongsTo('..\Models\Categories');
}
}
在控制器中,我可以使用下一个代码选择所有书籍。
Book::with('categories');
是否可以选择类别status
处于活动状态的所有书籍?
答案 0 :(得分:0)
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Book extends Model
{
/**
* The categories that associated with the book.
*/
public function categories()
{
return $this->belongsToMany('App\Category');
}
}
在类别模型中,您可以定义范围
喜欢 公共功能scopeStatus($ query,$ status ='active'){ $ query-> where('staatus',$ status); }
,您可以将其检索为$book->categories
,反之则是$category->books
和带有书籍Category::with('books')->status('active')->get()
的类别。
注意:在这种情况下,您需要数据透视表
答案 1 :(得分:0)
您可以为此使用紧急加载。
Book::with(['categories' => function($query){
$query->where('status','active');
}]);
答案 2 :(得分:0)
模型应为
const navigator = createStackNavigator(
{
Event: Event,
Signup: Signup,
Verif1: Verif1,
Chat: {
screen: ChatWithSocket,
}
}, {
initialRouteParams: 'Signup',
}
);
const AppContainer = createAppContainer(navigator);
export default AppContainer;
查询中
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Book extends Model
{
public function categories()
{
return $this->belongsTo(Category::class);
}
}