この問題を解決するには問題があります。基本的にこの機能は、ユーザ設定の削除ボタンをクリックすると呼び出されます。ユーザーは複数の設定を持つことができます。何が起こるかは、設定を削除すると別のものを探し、見つかったらそれを現在のプロファイルとして設定することです。それが0に戻ってCONFIG_DONEを設定する必要がない場合は最初のビットが正常に動作しますが、もし$firstProfile
戻り、代わりにそれは私にエラーを返しelse
に入るのは何も...Laravel 5.3結果が存在するかどうか確認
コード:
public function delete(UserConfig $config) {
$user = Auth::user();
$uid = $user->id;
if ($uid == $config->user_id) {
UserConfig::where('id', $config->id)->delete();
$firstProfile = UserConfig::where('user_id', $uid)->first()->id;
if(count($firstProfile)){
$user = User::find($uid);
$user->current_profile = $firstProfile;
$user->save();
return view('/settings');
} else {
$user = User::find($uid);
$user->config_done = 0;
$user->save();
return view('/home');
}
}
}
エラー:
ErrorException in UserConfigController.php line 100:
Trying to get property of non-object
in UserConfigController.php line 100
at HandleExceptions->handleError('8', 'Trying to get property of non-object', '/Users/jordykoppen/git/beef-monitor/app/Http/Controllers/UserConfigController.php', '100', array('config' => object(UserConfig), 'user' => object(User), 'uid' => '1')) in UserConfigController.php line 100
私はLaravelとMVC環境全体に非常に慣れています。
Eloquentは、 'User :: find'の結果を' if'文で囲むことができる結果が見つからなければnullを返します。コレクションの場合は、http://stackoverflow.com/questions/20563166/eloquent-collection-counting-and-detect-emptyのいずれかを使用してチェックすることができます – arma
'$ firstProfile'を' if'でラップしてその例を試してみました"非オブジェクトのプロパティを取得しようとしています" –