2017-09-08 145 views
0

我在laravel构建应用程序,当有人没有填写他们的数据得到了一个未定义偏移0如何在laravel中删除undefined offset 0?

现在我在做这样的事情可以跳过:

Sex: @if($user->user_data[0]->sex == 0) <br />@else {{$user->user_data[0]->sex}}<br /> @endif 

但是,什么是最简单的方法来做到这一点?

控制器:

$user = $this->model->getUserById($id); 

if(!$user){ 
    abort(404); 
} 

return view('user.user', compact('user')); 

型号:

$user = User::with('user_data', 'comments')->where('id', $id)->first(); 

return $user; 

回答

0

只是做一个计数你进入USER_DATA

@if($user->user_data->count()) 
    Sex: @if($user->user_data[0]->sex == 0) <br />@else {{$user->user_data[0]->sex}}<br /> @endif 
@endif 
+0

这是一样的。另一个想法? –

+0

只是想尝试一下,如果你做'Log :: info($ user-> user_data);'并且查看你的日志文件,你会得到什么? – aynber

+0

并且'user_data'是一对多关系还是一对一关系? – aynber

0

之前尝试:

Sex: {!! (isset($user->user_data[0])) ? (($user->user_data[0]->sex == 0) ? ' <br />' : $user->user_data[0]->sex) : '<br />' !!} 
0

你可以使用ternary operator

Sex: {{ ($user->user_data[0]->sex ? $user->user_data[0]->sex : 'Not Found') }} 

或者简写使用

Sex: {{ ($user->user_data[0]->sex ?: 'Not Found') }} 

// means 
// if($user->user_data[0]->sex){ 
//  echo $user->user_data[0]->sex; 
// } 
// else{ 
//  echo 'Not Found'; 
// } 
0

Sex: @if(isset($user->user_data[0])) 
 
     {{$user->user_data[0]->sex ?: ''}} 
 
    @endif 
 
<br />