Laravel 5,正在尝试获取 属性 的非对象
Laravel 5, Trying to get property of non-object
我的控制器:
public function show($id){
$user_id_1_connections = Connection::whereUser_id_1AndConnection_status($id, 1)->get();
$user_id_2_connections = Connection::whereUser_id_2AndConnection_status($id, 1)->get();
return view('connection.showConnection',['user_id_1_connections' => $user_id_1_connections, 'user_id_2_connections' => $user_id_2_connections]);
}
我的模型:
protected $table = 'connections';
protected $fillable = ['user_id_1','user_id_2','connection_status'];
public function user()
{
return $this->belongsTo('App\User');
}
我的刀锋:
@foreach($user_id_1_connections as $user_id_1_connection)
{{ $user_id_1_connection->user->name }}
{{ $comment->user->name }}
@endforeach
@foreach($user_id_2_connections as $user_id_2_connection)
{{ $user_id_2_connection->user->name }}
@endforeach
我已经为 user_id_1 和用户 table 创建了外键 user_id_2。
$table->integer('user_id_1')->unsigned();
$table->foreign('user_id_1')->references('id')->on('users')->onDelete('cascade');
$table->integer('user_id_2')->unsigned();
$table->foreign('user_id_2')->references('id')->on('users')->onDelete('cascade');
但是当我运行这个代码。它显示错误:
正在尝试获取 属性 的非对象。
这里的问题可能是您没有为每个连接分配 user
,所以不是:
{{ $user_id_1_connection->user->name }}
你应该这样写:
{{ $user_id_1_connection->user ? $user_id_1_connection->user->name : 'unknown' }}
当您使用 $x->y->z
语法时,所有其他地方都相同。要显示 z
你应该确保 $x->y
不为 null
我的控制器:
public function show($id){
$user_id_1_connections = Connection::whereUser_id_1AndConnection_status($id, 1)->get();
$user_id_2_connections = Connection::whereUser_id_2AndConnection_status($id, 1)->get();
return view('connection.showConnection',['user_id_1_connections' => $user_id_1_connections, 'user_id_2_connections' => $user_id_2_connections]);
}
我的模型:
protected $table = 'connections';
protected $fillable = ['user_id_1','user_id_2','connection_status'];
public function user()
{
return $this->belongsTo('App\User');
}
我的刀锋:
@foreach($user_id_1_connections as $user_id_1_connection)
{{ $user_id_1_connection->user->name }}
{{ $comment->user->name }}
@endforeach
@foreach($user_id_2_connections as $user_id_2_connection)
{{ $user_id_2_connection->user->name }}
@endforeach
我已经为 user_id_1 和用户 table 创建了外键 user_id_2。
$table->integer('user_id_1')->unsigned();
$table->foreign('user_id_1')->references('id')->on('users')->onDelete('cascade');
$table->integer('user_id_2')->unsigned();
$table->foreign('user_id_2')->references('id')->on('users')->onDelete('cascade');
但是当我运行这个代码。它显示错误: 正在尝试获取 属性 的非对象。
这里的问题可能是您没有为每个连接分配 user
,所以不是:
{{ $user_id_1_connection->user->name }}
你应该这样写:
{{ $user_id_1_connection->user ? $user_id_1_connection->user->name : 'unknown' }}
当您使用 $x->y->z
语法时,所有其他地方都相同。要显示 z
你应该确保 $x->y
不为 null