投稿したもののshow画面に削除ボタンをつくり、それを押すことでその投稿を削除できるようにしたいと思っています。ですが、削除ボタンを押すとこのようなエラーが出ます
(2/2) ErrorException Trying to get property of non-object (View: C:\xampp\htdocs\Twitter_crone\twitter_clone\twc\resources\views\tweets\show.blade.php) in bc64ace9eac34c6fdbf22ebee7493fae4af22437.php (line 3) at CompilerEngine->handleViewException(object(ErrorException), 1) in PhpEngine.php (line 44) at PhpEngine->evaluatePath('C:\\xampp\\htdocs\\Twitter_crone\\twitter_clone\\twc\\storage\\framework\\views/bc64ace9eac34c6fdbf22ebee7493fae4af22437.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'tweet' => null)) in CompilerEngine.php (line 59) at CompilerEngine->get('C:\\xampp\\htdocs\\Twitter_crone\\twitter_clone\\twc\\resources\\views/tweets/show.blade.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'tweet' => null)) in View.php (line 137) at View->getContents() in View.php (line 120)
投稿したものをうまく参照できていないということなのでしょうか?
ちなみに関連する設定は下記のようになってます
投稿したもののコントローラー
public function destroy($id) { $tweet = tweet::findOrFail($id); $tweet->delete($id); \Session::flash('flash_message', '削除しました。'); return redirect('/'); }
削除ボタンのある詳細画面
@extends('layouts.app') @section('content') <h1>Tweet</h1> <p class="lead">{{ $tweet->created_at->toFormattedDateString() }}</p> <p class="lead">{{ $tweet->body }}</p> <form method="delete" action="/tweets/{$id}"> {{ csrf_field()}} <button type="submit" class="btn">DELETE</button> </form> @endsection('content')
ルーティング
Route::group(['middleware' => 'auth'], function (){ Route::get('/', 'TweetsController@index'); Route::get('/tweets/create', 'TweetsController@create'); Route::post('/tweets', 'TweetsController@store'); Route::get('/tweets/{tweet}', 'TweetsController@show'); Route::delete('/tweets/{$id}', 'TweetsController@destroy'); });
ここの書き方は変だ!というところなど在りましたらご指摘いただきたいです
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。