Php 使用Laravel雄辩的数组删除匹配项
我有两个雄辩的返回数组:Php 使用Laravel雄辩的数组删除匹配项,php,arrays,laravel,loops,Php,Arrays,Laravel,Loops,我有两个雄辩的返回数组: $services = \App\Service::all(); $userService = \App\UserService::where('user_id', Auth::user()->id)->get(); 我尝试的是: @foreach($services as $service){ @foreach($userServices as $userService){ @if($userService->servic
$services = \App\Service::all();
$userService = \App\UserService::where('user_id', Auth::user()->id)->get();
我尝试的是:
@foreach($services as $service){
@foreach($userServices as $userService){
@if($userService->service_id != $service->id)
<option value="{{ $service->id }}">{{ $service->name }}</option>
@endif
@endforeach
@endforeach
@foreach($services as$service){
@foreach($userServices作为$userService){
@如果($userService->service\u id!=$service->id)
{{$service->name}
@恩迪夫
@endforeach
@endforeach
但这是重复选择,制造混乱
什么是好方法?您需要在模型中使用嵌套关系
class Service extends Model
{
public function user_service()
{
return $this->hasMany(UserService::class, 'user_id');
}
}
和控制器
$user_id = Auth::user()->id;
$services = Service::with(['user_service' => function ($query) use ($user_id) {
$query->where('user_id', $user_id);
}])->get();
return view('page', compact('services'));
我已经看过密码了
$services = \App\Service::all();
$userService = \App\UserService::where('user_id', Auth::user()->id)->get();
及
或者尝试使用原始查询进行内部联接。如果不想更改方法,只需将
!=
更改为=
@if($userService->service_id == $service->id)
或者,如果你想要一个好的方法,尝试雄辩
您的模型似乎是多对多关系
访问此链接您可以尝试:
$userServices = \App\UserService::where('user_id', Auth::user()->id)
->pluck('service_id')->toArray();
$services = \App\Service::whereNotIn('id',$userServices)->get();
//Now you can loop through services
@foreach($services as $service){
<option value="{{ $service->id }}">{{ $service->name }}</option>
@endforeach
$userServices=\App\UserService::where('user\u id',Auth::user()->id)
->拔毛('service_id')->toArray();
$services=\App\Service::whereNotIn('id',$userServices)->get();
//现在您可以通过服务进行循环
@foreach($services as$service){
{{$service->name}
@endforeach
希望它有帮助…服务和用户之间的关系是什么?是多对多吗?@DimitrisKontoulis没有用户它的
UserService
,这种关系是一对一。意味着一个UserService有一个服务。你检索了两次数据。uservice就足以满足你的需要了
@if($userService->service_id == $service->id)
$userServices = \App\UserService::where('user_id', Auth::user()->id)
->pluck('service_id')->toArray();
$services = \App\Service::whereNotIn('id',$userServices)->get();
//Now you can loop through services
@foreach($services as $service){
<option value="{{ $service->id }}">{{ $service->name }}</option>
@endforeach