gpt4 book ai didi

php - 如何检查 Eloquent 关系

转载 作者:行者123 更新时间:2023-11-29 18:59:48 24 4
gpt4 key购买 nike

因此,我需要检查用户模型中是否存在现有关系,并制作 if 语句以向具有公司关系的用户提供路由访问权限。

用户.php

public function company(){
return $this->belongsTo('App\Company', 'user_id');
}

公司.php

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

ListingController.php

public function create(User $user){
if(count($user->company) > 0){
return view('listings.create');
} else{
return redirect()->back();
}
}

导航 View

@inject('user', 'App\User')
@if(count($user->company) > 0)
<li><a href="{{route('listings.create', [$area])}}">Add Listing</a></li>
@endif

在 web.php 中列出路由

Route::group(['prefix' => '/listing', 'namespace' => 'Listing'], function (){
// Route::get('/me', 'ListingController@userListingsView')->name('listings.index');
Route::get('/favourites', 'ListingFavoriteController@index')->name('listings.favourites.index');
Route::post('/{listing}/favourites', 'ListingFavoriteController@store')->name('listings.favourites.store');
Route::delete('/{listing}/favourites', 'ListingFavoriteController@destroy')->name('listings.favourites.destroy');
Route::post('{listing}/contact', 'ListingContactController@store')->name('listings.contact.store');

Route::get('{listing}/share', 'ListingShareController@index')->name('listings.share.index');
Route::post('{listing}/share', 'ListingShareController@store')->name('listings.share.store');

Route::group(['middleware' => 'auth'], function (){
Route::get('/create', 'ListingController@create')->name('listings.create');
Route::post('/', 'ListingController@store')->name('listings.store');
Route::get('{listing}/edit', 'ListingController@edit')->name('listings.edit');
Route::patch('{listing}', 'ListingController@update')->name('listings.update');
});

});

URL::project.dev/{area}/listing/create

现在我不确定用户之间的公司关系是否正确,当我使用具有公司关系的用户登录时,它仍然会将我重定向回来,而不是创建列表路由。

最佳答案

尝试空函数而不是计数

public function create(User $user) {
if (!empty($user->company)) {
return view('listings.create');
} else {
return redirect()->back();
}
}

更新路线(创建线路)至

Route::get('{user}/create', 'ListingController@create')->name('listings.create');

然后在您的网址中添加用户 ID

URL :: project.dev/{area}/listing/{user}/create

导航 View

@inject('user', 'App\User')
@if(count($user->company) > 0)
<li><a href="{{route('listings.create', [$area, $user->id])}}">Add Listing</a></li>
@endif

关于php - 如何检查 Eloquent 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43952639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com