利用laraval实现todos
1.搭建框架
2.给app取名并打开
3、创建文件:
4、添加路由
5、控制器
代码。
// A code block
var foo = 'bar';
// An highlighted block
<?php
namespace App\Http\Controllers;
use App\Todo;
use Illuminate\Http\Request;
class TodoController extends Controller
{
//
public function index()
{
$todos = Todo::query()->orderByDesc('created_at')->get();
//$todos = Todo::all();//取得模型中的所有数据
//$items = Todo::all();
//return view('todos.index');
return view('todos.index')->with(['todos' => $todos]);//将数据送给视图
}
public function show(Todo $todo)
{
//dd($todoId);
//$todo = Todo::findOrFail($todoId);
//return $todo;
return view('todos.show')->with(['todo'=> $todo]);
}
public function create()
{
return view('todos.create');
}
public function store(Request $request)
{
$request->validate([
'name' => 'required|min:3|max:20',
'description' => 'required'
]);
$name = $request->get('name');
$description = $request->get('description');
$todo = new Todo();
$todo->name = $name;
$todo->description = $description;
$todo->save();
$request->session()->flash('success-info', 'Create successful!');
return redirect('/todos');
}
public function edit(Todo $todo)
{
//dd($todoId);
//$todo = Todo::findOrFail($todoId);
//return $todo;
return view('todos.edit')->with(['todo'=> $todo]);
}
public function update(Todo $todo, Request $request)
{
$request->validate([
'name' => 'required|min:3|max:50',
'description' => 'required'
]);
$name = $request->get('name');
$description = $request->get('description');
//$todo = Todo::findOrFail($todoId);
$todo->name = $name;
$todo->description = $description;
$todo->save();
$request->session()->flash('success-info', 'Update successful!');
return redirect("/todos/{$todo->id}");
}
public function destroy(Todo $todo, Request $request)
{
//$todo = Todo::findOrFail($todoId);
try{
$todo->delete();
}catch (\Exception $exception){
dd($exception);
}
$request->session()->flash('success-info', 'Delete successful!');
return redirect('/todos');
}
public function complete(Todo $todo)
{
$todo->is_completed = true;
$todo->save();
return redirect('/todos');
}
}
6、在浏览器中打开: 最后效果图