Php 当一个或多个变量为空时,如何向laravel中的视图发送多个变量
当新用户注册并重定向到配置文件页面时。所有这些Php 当一个或多个变量为空时,如何向laravel中的视图发送多个变量,php,laravel,view,controller,eloquent,Php,Laravel,View,Controller,Eloquent,当新用户注册并重定向到配置文件页面时。所有这些$userconatact、$qualification和$profileimage变量均为空。主页设置为带有if(condition)的按钮,用于填写表单或向用户显示可用数据。共有三个表格,用户必须逐个填写这些表格。所有这些变量或其中一个变量都可以为null,但我仍然希望将null值发送给view。有没有办法让这种观点发生 class ProfileController extends Controller { public fun
$userconatact
、$qualification
和$profileimage
变量均为空。主页设置为带有if(condition)
的按钮,用于填写表单或向用户显示可用数据。共有三个表格,用户必须逐个填写这些表格。所有这些变量或其中一个变量都可以为null,但我仍然希望将null值发送给view。有没有办法让这种观点发生
class ProfileController extends Controller
{
public function showprofile($type=null, $id='id'){
$contactquery = Usercontact::where('user_id',Auth::user()->id)->select('*')->get();
$usercontact = $contactquery->toArray();
$qualificationquery = userqualification::where('user_id',Auth::user()->id)->select('*')->get();
$qualification = $qualificationquery->toArray();
$profileimagequery = Profileimage::where('user_id',Auth::user()->id)->select('id','user_id','profileimage')->get();
$profileimage = $profileimagequery->toArray();
return view('home')->withUsercontact($usercontact)->withQualification($qualification)->withProfileimage($profileimage);
}
}
我尝试使用if语句,但if不起作用
return view('home')
if(!empty($usercontact)){->withUsercontact($usercontact)}
if(!empty($qualification)){->withQualification($qualification)}
if(!empty($profileimage)){->withProfileimage($profileimage);}
有没有办法像这样使用if语句来简化操作。1)使用compact,它会自动为您创建键值对
return view('home')->compact('usercontact','qualification','profileImage')
2) 下面是对代码的一些其他改进。您可以使用Auth facade访问登录用户
$usercontact = Auth::user();
3) 在您的用户模型上定义并通过此访问资格。这将返回一个集合
$qualification = $usercontact->qualifications;
您可以使用compact
将数据从控制器发送到视图
returnview('home')->compact('usercontact','qualification','profileimage')代码>
您的代码可以重构如下
public function showprofile($type=null, $id='id')
{
$usercontact = Usercontact::where('user_id',Auth::user()->id)->first();
$qualification = Userqualification::where('user_id',Auth::user()->id)->first();
$profileimage = Profileimage::where('user_id',Auth::user()->id)->select('id','user_id','profileimage')->first();
return view('home')->compact('usercontact', 'qualification', 'profileimage');
}
根据惯例,在代码中记录Userqualification模型名称。尝试将关系添加到模型中,以简化查询。尝试使用此样式将数据发送到视图
return view('home',['Usercontact'=>$usercontact,'Qualification'=>$qualification,'Profileimage'=>$profileimage]);
在视图中,您将能够通过数组键获取数据my variables contain array and the compact返回无效的空值