如何在Laravel中向查询结果集添加硬编码记录

时间:2018-01-30 19:40:27

标签: php laravel

我有BookController,它与作者和发布者表有关系。 我需要动态添加一个发布者记录,在代码中硬编码,这将显示为该书的第二出版商。这是我需要使用的默认类型。

我不确定在Laravel中,bookController可以做到这一点吗?

2 个答案:

答案 0 :(得分:0)

所以你说一本书(至少)有两个出版商?在这种情况下,您可以设置这样的关系:

发布者 | m ------ m | 书籍 | m ---- 1 |的作者

然后,当您将publisher A添加到图书时,您可以添加publisher A,还可以添加publisher Z(“已编码”的图书)。因此,当您需要向发布商查询某本书时,请返回:

$book = App\book::find(1);
$book->publishers;

答案 1 :(得分:0)

将此添加到您的图书模型

public function getPublishersAttribute()
{
    $publishers= $this->publishers()->get(); // call the relationship and get collection
    $new_publisher = new Publisher(); // create a new hardcoded publisher and set the data without saving
    return $publishers->add($new_publisher);
}

现在,您可以通过以下方式获取发布商集合(以及硬编码的发布商):
$book->publishers;