2017-07-12 15 views
1
public function featuredimage() 
{ 
    return $this->belongsTo(Image::class, 'featured_image_id')->withDefault(); 
} 

これは私に次のようなことができます:モデル[App \ Models \ Core \ Blog \ Post]で未定義の関係[featuredimage]を呼び出します。belongsToでwithDefault()を使用するとエラーが発生する

なぜですか?

それはドキュメントに従って動作するはずです:

https://laravel.com/docs/5.4/eloquent-relationships#updating-belongs-to-relationships

デフォルトモデル

belongsToの関係はあなたが一定の関係がnullの場合 が返されるデフォルトモデルを定義することができます。このパターンは と呼ばれることが多く、Nullオブジェクトパターンと呼ばれ、 条件付きチェックをコード内で削除できます。次の例ではユーザーがポストに 添付されていない場合、ユーザー 関係が空のApp \ユーザーモデルを返します。

public function user() 
{ 
    return $this->belongsTo('App\User')->withDefault(); 
} 

私laravelバージョン:5.4.27

私は2つを持っていますテーブル:ポストテーブル内の

ポスト表や画像テーブル

私はこれを行う:

$table->biginteger('featured_image_id')->nullable()->unsigned(); 

$table->foreign('featured_image_id')->references('id')->on('images')->onUpdate('cascade')->onDelete('cascade'); 
+0

あなたのデータベース設計を共有することができますか? –

+0

私の質問 –

+0

とあなたの画像テーブルを更新しましたか? –

答えて

1

私は同じ問題がありました。 withDefaultメソッドが5.4.28から利用可能であるため、最新のlaravelバージョンにアップグレードする必要があります。

更新するには、単に実行します。

composer update 
関連する問題