2016-08-03 29 views
0

我正在研究laravel的項目傳單,我不斷從工匠修補程序中獲取此錯誤。調用未定義的方法照片()laravel項目傳單

$flyer->photos()->create(['photo' => 'foo.jpg']); 

BadMethodCallException與消息 '調用未定義的方法照亮 \數據庫\查詢\生成器::照片()'

這裏是我的Flyer.php文件:

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Flyer extends Model 
{ 
    public function photos() 
    { 
     return $this->hasMany('App\Photo'); 
    } 
} 

這裏是我的Photo.php文件:

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Photo extends Model 
{ 
    protected $table = 'flyer_photos'; 

    protected $fillable = ['photo']; 

    public function flyer() 
    { 
     return $this->belongsTo('App\Flyer'); 
    } 
} 

貌似方法照片()不會得到認可或東西

+0

那麼'$ flyer'是什麼? – Machavity

+0

請發佈創建'$ flyer'的行 –

+0

$ flyer = factory('App \ Flyer') - > create(); – user3089096

回答

0

從錯誤描述,$flyer不是Flyer對象,這是一個Illuminate \Database\Query\Builder對象。這是你的錯誤。創建$flyer時,確保在構建查詢後使用get()first()

+0

這是我用來創建對象\t $ flyer = factory('App \ Flyer') - > create();它運行良好,但之後我運行$ flyer-> photo() - > create(['photo'=>'foo.jpg']);這就是我得到錯誤的地方 – user3089096

+0

也許我們需要看看爲App \ Flyer定義的工廠。確認創建的$ flyer確實是一個Flyer對象。 –

+1

是的,它是傳單對象,工廠是laravel命令 – user3089096

相關問題