Laravel 5.5 LTSとBootstrap 4でTodoアプリ作ってみた。
Github https://github.com/Lara-Bell/todo
MIT License
お好きにどうぞ。
*Demo
Go Appからどうぞ。
遊んでみてください(*´∀`*)
ページネーション
1 |
$tasks = Task::orderBy('id', 'desc')->get(); // 下記変更 |
1 2 3 4 5 |
public function index() { $tasks = Task::orderBy('id', 'desc')->paginate(5); // 変更 return view('tasks.index', compact('tasks')); } |
views/vendor/pagination ディレクトリが生成される。
1 |
php artisan vendor:publish --tag=laravel-pagination |
index.blade.phpに追加
1 2 3 4 5 6 7 8 |
@endif {{-- Pagination --}} <!-- 追加 --> {{ $tasks->links('vendor.pagination.simple-bootstrap-4') }} <!-- 追加 --> </div> </div> </div> <footer class="footer"> |
エラー・サクセスメッセージ
TaskController.php 追加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
public function store(Request $request) { $this->validate($request, [ 'newTaskName' => 'required|min:5|max:255', ]); $task = new Task; $task->name = $request->newTaskName; $task->save(); Session::flash('success', 'New has been succesfully added!'); // 追加 return redirect()->route('tasks.index'); } public function update(Request $request, $id) { $this->validate($request, [ 'updatedTaskName' => 'required|min:5|max:255', ]); $task = Task::findOrFail($id); $task->name = $request->updatedTaskName; $task->save(); Session::flash('success', 'Task #' . $id . ' has been successfully update.'); // 追加 return redirect()->route('tasks.index'); } public function destroy($id) { $task = Task::findOrFail($id); $task->delete(); Session::flash('success', 'Task #' . $id . ' has been successfully deleted.'); // 追加 return redirect()->route('tasks.index'); } |
index.blade.php 追加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<h1 class="text-center">Todo List</h1> {{-- Session flash --}} @if(Session::has('success')) <div class="alert alert-success" role="alert"> <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true">×</span> </button> <strong>Success:</strong> {{ Session::get('success') }} </div> @endif {{-- Error Message --}} @if(count($errors) > 0) <div class="alert alert-danger" role="alert"> <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true">×</span> </button> <strong>Error:</strong> <ul> @foreach($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif {{-- tasks.store --}} |
edit.blade.php 追加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<h1 class="text-center">Todo List Edit</h1> @if(Session::has('success')) <div class="alert alert-success" role="alert"> <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true">×</span> </button> <strong>Success:</strong> {{ Session::get('success') }} </div> @endif @if(count($errors) > 0) <div class="alert alert-danger" role="alert"> <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true">×</span> </button> <strong>Error:</strong> <ul> @foreach($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif <form action="{{ route('tasks.update', [$task->id]) }}" method="POST"> |
まとめ
今回作ったTodo Appをまとめます。
index store
/tasks index.blade.php 表示
form -> TaskController@store -> validate
error -> index.blade.php エラー表示
success -> Session flash 表示
edit
/tasks/{task}/edit edit.blade.php 表示
form -> TaskController@update -> validate
error -> index.blade.php エラー表示
success -> Session flash 表示
destroy
/task index.blade.php
destroy -> TaskController@destroy
success -> Session flash 表示
記事が4つもなってしまってかなり見にくくなってしまいました。
内容も多く解説しきれてない部分が多々あると思うので何かありましたらお問合わせなどで質問いただければと思います。
今回はこれでおしまい!
コメントを残す