2017-09-08 154 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 />