2017-10-19 45 views
1

如何在我的模型中创建一个包含第一个页面值的模型?如何在Laravel关系中获得第一行

我想让我的封面方法获得他的第一个页面实例。

这里是我的模型:

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Book extends Model 
{ 
    protected $guarded = []; 

    public function pages() 
    { 
     return $this->hasMany('\App\Page'); 
    } 

    public function cover() 
    { 
     //first page of pages here 
    } 

} 
+1

'返回$这个 - >页面() - >第()'? – kerbholz

+0

它返回一个错误,App \ Book :: cover必须返回一个关系实例。 –

回答

5

使用第一个()方法的关系

public function cover() 
{ 
    return $this->pages()->first(); 
} 
+0

我试了一下,但它返回这个错误,App \ Book :: cover必须返回一个关系实例。 –

+1

你必须在书的一个实例上调用它,例如:App \ Book :: first() - > cover() –

+1

你必须使用(),optherwise laravel试图寻找一个关系 –

相关问题