调用未定义的方法照片()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');
}
}
貌似方法照片()不会得到认可或东西
从错误描述,$flyer
不是Flyer
对象,这是一个Illuminate \Database\Query\Builder
对象。这是你的错误。创建$flyer
时,确保在构建查询后使用get()
或first()
。
这是我用来创建对象\t $ flyer = factory('App \ Flyer') - > create();它运行良好,但之后我运行$ flyer-> photo() - > create(['photo'=>'foo.jpg']);这就是我得到错误的地方 – user3089096
也许我们需要看看为App \ Flyer定义的工厂。确认创建的$ flyer确实是一个Flyer对象。 –
是的,它是传单对象,工厂是laravel命令 – user3089096
那么'$ flyer'是什么? – Machavity
请发布创建'$ flyer'的行 –
$ flyer = factory('App \ Flyer') - > create(); – user3089096