我在laravel,页面和内容中有一对对象。
我已经设置了一个关系函数,包括,其中包含基于page_id的内容。
我想应用其他条件,例如删除的位置 - 0,以及日期在某些范围内的情况,我知道如何应用条件并设置这些字段。
我无法理解的是如何应用额外条件以及匹配关系字段。
有人可以帮我吗?
答案 0 :(得分:3)
在模型中定义关系是您需要对模型本身进行的所有操作。但是,您可以向模型添加静态函数,以获取包含所需信息的数据。
页面模型方法示例:
class Page extends Eloquent {
public function contents()
{
return $this->has_many('Content');
}
// Return all content that has not been marked as
// deleted in the database
public static function with_contents($id)
{
return Page::find($id)->contents()
->where_null('deleted')
->get();
}
}
此示例假定contents表中的deleted字段为null,除非将其删除,在这种情况下它将具有任何值。
使用你只需使用
$page = Page::with_contents('1');
您可以根据需要创建任意数量的静态辅助方法,或者根据需要为一个方法添加任意数量的条件,然后使用新的静态方法检索数据。
答案 1 :(得分:0)
我认为这可能是你正在寻找的东西
http://doginthehat.com.au/2012/06/adding-conditions-to-relationships-in-laravel/
class User extends Eloquent {
public function meta()
{
return $this->has_many('Meta','target_id')
->where('target_type','=',$this->table());
}
}