我试图在Laravel中创建一个简单的数据显示表单,以显示给定电话号码的联系方式。电话号码从URL(路由)传递到表单。如果URL不包含电话号码,则表单的所有字段都应为空字符串。为了实现这一点,我只检查是否在没有电话号码($ number)的情况下调用URL,如果是,则创建一个带有正确键和空字符串作为值的关联数组
class InboundCallController
{
public function inboundCall($number=null){
if($number==null) {
$contact=array(
"id"=>"",
"registration_no"=>"",
"title"=>"",
"firstname"=>"",
"lastname"=>"",
"primary_contact"=>"",
"secondary_contact"=>"",
"email"=>"",
"gender"=>"",
"address_line1"=>"",
"address_line2"=>"",
"city_state_province"=>"",
"zip"=>"",
"country"=>"");
return view('InboundCall')
->with('number',null)
->with('contact',$contact);
}
$contact=$this->retrieveContact($number);
return view('InboundCall')
->with('number',$number) //CLI passed from soft-phone
->with('contact',$contact) //Contact details retrieved from db
}
private function retrieveContact($number){
return DB::table('contacts') //Retrieve contact
->where('primary_contact',$number)
->first();
}
}
尝试获取非对象的属性(查看:/var/www/html/csp/resources/views/InboundCall.blade.php)
在刀片的第37行,我有这个:
value="{{$contact->primary_contact}}"
答案 0 :(得分:2)
这个想法......如果$number
是null
,那么您会向视图发送一个关联数组,该数组不是object
类型。它是'是array
,因此您无法通过->
访问这些值。尝试在视图中访问此类数据,在$ contact为null时将@添加到void提升错误
value="{{ @$contact['primary_contact'] }}"
编辑(对于遇到同样问题的其他人):
如果您有$ number和一个数组,您可能还想考虑不发送对象..您可以发送一个新的联系人,其中Contact是模型的名称,并可能将Contact的字段初始化为空或制作一个static方法Contact :: emptyContact返回类型为Contact的对象,因此您不必检查视图中的数据类型
答案 1 :(得分:1)
value="{{$contact->primary_contact}}"
这里$ contact是一个数组而不是对象像这样使用它
value="{{$contact['primary_contact']}}"