實作laravel的CRUD
主要參考影片而來的~
目前我的新增和修改都寫在update裡~
(新增功能寫兩個都註解掉了)
web.php
Route::view('/todo','index');
Route::get('/todo', 'TodoController@index');
Route::post('/todo', 'TodoController@update');
Route::delete('/todo/{todo}', 'TodoController@destroy');
Todo.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Todo extends Model
{
protected $fillable = ['title'];
//$todo = 'title';
}
TodoController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Todo;
class TodoController extends Controller
{
public function index()
{
$todos = Todo::all();
//dd($todos);
return view('index', ['todos'=>$todos]);
}
public function update(Request $request)
{
// $todo = new Todo();
// $todo->title = $request->title;
// $todo->save();
// $request->validate([
// 'title' => 'required|min:3'
// ]);
// $todo = Todo::create($request->all());
//return $todo;
$id=$request->input('id');
$title=$request->input('title');
$staff = Todo::find($id);
$staff->title = $title;
$staff->save();
//$todo = Todo::create(['title'=>$request->title]);
return redirect('todo');
}
public function destroy(Request $request, Todo $todo)
{
$todo->delete();
return redirect('todo');
}
}
index.blade.php
<!-- @if ($errors->has('title'))
<strong>{{ $errors->first('title') }}</strong>
@endif
-->
@foreach($todos as $todo)
<p>
{{ $todo->id.','.$todo->title }}
<form action="todo/{{ $todo->id }}" method="POST">
{{ csrf_field() }}
{{ method_field('DELETE') }}
<input type="submit" value="delete">
</form>
</p>
@endforeach
<form action="todo" method="POST">
{{ csrf_field() }}
<input type="text" placeholder="請輸入" name="id">
<input type="text" placeholder="請輸入" name="title">
<input type="submit">
</form>
留言
張貼留言