1

我在 laravel、页面和内容中有一对对象。

我已经设置了一个关系函数,并包含,其中包括基于 page_id 的内容。

我想应用其他条件,例如删除位置 - 0,以及日期在特定范围内的位置,我知道如何应用 where 条件并设置这些字段。

我无法理解的是如何应用额外条件以及匹配关系字段。

有人可以帮我吗?

4

2 回答 2

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();
    }
}

此示例假定内容表中的已删除字段为空,除非它被删除,在这种情况下它将具有任何值。

要使用,您只需使用

$page = Page::with_contents('1');

您可以根据需要创建任意数量的这些静态辅助方法,或者向一个方法添加任意数量的条件,然后使用新的静态方法来检索数据。

于 2013-01-06T18:35:58.933 回答
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());
     }

}
于 2013-04-24T14:09:00.940 回答