我在 laravel、页面和内容中有一对对象。
我已经设置了一个关系函数,并包含,其中包括基于 page_id 的内容。
我想应用其他条件,例如删除位置 - 0,以及日期在特定范围内的位置,我知道如何应用 where 条件并设置这些字段。
我无法理解的是如何应用额外条件以及匹配关系字段。
有人可以帮我吗?
在模型中定义关系是您需要对模型本身做的所有事情。但是,您可以向模型添加静态函数,以获取包含所需信息的数据。
页面模型方法示例:
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();
}
}
此示例假定内容表中的已删除字段为空,除非它被删除,在这种情况下它将具有任何值。
要使用,您只需使用
$page = Page::with_contents('1');
您可以根据需要创建任意数量的这些静态辅助方法,或者向一个方法添加任意数量的条件,然后使用新的静态方法来检索数据。
我想这可能是你正在寻找的
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());
}
}