動作環境
- Laravel 8.40.0
- PHP 8.0.3
リレーションの設定漏れにより表題のエラーが発生することがあるため備忘録としてまとめます。
例えば、通常usersテーブルがあった場合の外部キーとしてはuser_id( {テーブル名の単数形}_id )となるが、このルールに当てはまらない外部キーの名称を設定したとき(例えばclient_idなど)、通常のようにビューからリレーションを張った側から呼び出すと下記のようにエラーが発生する。
ErrorException
Attempt to read property "name" on null
この場合の対応として、モデルにリレーションを設定する際に、外部キーの名称を引数として指定する必要がある。
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Kuchikomi extends Model
{
public function User()
{
return $this->belongsTo(User::class,'client_id');
}
}
参考 : Laravel8公式ドキュメント