调用未定义的方法照片()laravel项目传单

问题描述:

我正在研究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

从错误描述,$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