【发布时间】:2021-06-30 12:14:21
【问题描述】:
我有四个表:用户、国家、地区和乡镇。
在 User.php 模型中,
public function country() {
return $this->belongsTo(Country::class, 'country_id');
}
public function region() {
return $this->belongsTo(Region::class, 'region_id');
}
public function township() {
return $this->belongsTo(Township::class, 'township_id');
}
在 Country.php、Region.php 和 Township.php 模型中,
public function users() {
return $this->hasMany(User::class);
}
在 users.blade 中,我尝试打印用户的位置
{{ $user->township->name }}, {{ $user->region->name }}, {{ $user->country->name }}
而且,我得到了Trying to get property 'name' of non-object 异常。
当我尝试像{{ $user->township->name }}, {{ $user->region->name }}, {{ $user->country->name }} 一样打印country、region 和township 时,它打印如下-
{"id":1,"region_id":1,"name":"Hlaing"}, {"id":1,"country_id":1,"name":"Yangon"}, {"id":1,"name":"Myanmar"}
只在远程服务器出现这个异常,在本地机器没有问题。
我为所有用户、已批准用户和待定用户提供三个视图。我有 users.blade.php、users_approved.blade.php 和 users_pending.blade.php。这些刀片是相似的,只有标题文本不同。批准的用户视图没有问题(远程服务器也是)。
在 MainController.php 中,我有这些功能 -
function users(Request $request) {
$users = User::all();
return view('users', [ 'users' => $users ]);
}
function users_approved(Request $request) {
$users = User::where('approval_status', 'APPROVED')->get();
return view('users_approved', [ 'users' => $users ]);
}
function users_pending(Request $request) {
$users = User::where('approval_status', 'PENDING')->get();
return view('users_pending', [ 'users' => $users ]);
}
我已经尝试过 - php artisan view:clear、php artisan cache:clear、php artisan config:clear。
【问题讨论】:
-
您是否确保所有用户实际上拥有所属的乡镇、国家和地区?
标签: php mysql laravel laravel-blade