这是我的模型User.php
class User extends Authenticatable
{
use Notifiable;
protected $fillable = [
'name', 'email', 'password', 'cell_phone', 'province_id', 'city_id', 'job'
];
protected $hidden = [
'password', 'remember_token',
];
public function city()
{
return $this->belongsTo('City');
}
}
这是我的控制器的一部分:
$user_info = User::find(Auth::user()->id);
dd($user_info->city);
它抛出了这个:
“未定义的类常量'city'”
我该如何解决问题?
表格结构:
// users
+----+--------+---------+----------
| id | name | city_id | ...
+----+--------+---------+----------
| 1 | Jack | 5 | ...
// city
+----+--------+
| id | name |
+----+--------+
| 1 | Tehran |
答案 0 :(得分:2)
您需要传递完整的班级名称:
return $this->belongsTo('App\City');
或者:
return $this->belongsTo(City::class);
此外,您不需要这样做:
$user_info = User::find(Auth::user()->id);
由于Auth::user()
已加载用户实例,因此您只需使用以下内容获取城市实例
Auth::user()->city
答案 1 :(得分:0)
基本上,您没有提供您的城市类名称的完整路径,这就是您所属的关系。关系不正常。
例如,您的代码必须是
CreateVIew
因为你的应用程序文件夹中有城市类模块和其他模块。