Webアプリ習作#11
ツイート一覧画面の作成
DBに格納されているツイートを一覧で表示できるようにする
ルーティングの追加
routes/web.phpを編集
// ここからを削除. //Route::get('/', function () { // return view('test'); //}); // ここまでを削除. Route::get('/', 'TweetController@index'); // これを追加.
ルーティングの確認
php artisan route:list
+--------+----------+-----------------------+------+-----------------------------------------------------+--------------+ | Domain | Method | URI | Name | Action | Middleware | +--------+----------+-----------------------+------+-----------------------------------------------------+--------------+ | | GET|HEAD | / | | App\Http\Controllers\TweetController@index | web | | | GET|HEAD | api/user | | Closure | api,auth:api | | | GET|HEAD | auth/twitter | | App\Http\Controllers\TwitterAuthController@login | web | | | GET|HEAD | auth/twitter/callback | | App\Http\Controllers\TwitterAuthController@callback | web | +--------+----------+-----------------------+------+-----------------------------------------------------+--------------+
コントローラーの作成
プロジェクトディレクトリにて以下を実行
php artisan make:controller TweetController
'app/Http/Controllers/TweetController.php' が作成されるので編集
namespace App\Http\Controllers; // ここからを追加. use App\Models\Tweet; // ここまでを追加. use Illuminate\Http\Request; class TweetController extends Controller { // ここからを追加. public function index() { $tweets= Tweet::all()->sortByDesc('created_at'); return view('tweets.index', ['tweets' => $tweets]); } // ここまでを追加. }
ツイート一覧画面の作成
resources/viewsにtweetsディレクトリを作成してindex.blade.phpというファイルを作成
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <title> ツイート一覧 </title> </head> <body> @foreach($tweets as $tweet) <div> <img src="{{ $tweet->user->avatar }}" width="48" height="48"> {{ $tweet->user->name }} {{ $tweet->created_at->format('Y/m/d H:i') }} </div> <div> {!! nl2br(e( $tweet->body )) !!} </div> @endforeach </body> </html>
確認
http://localhost:8000/
にアクセスしてツイート一覧が表示されていることを確認