一直我都以為 routes 就是 Laravel 的 controller 看來是我誤會
然後我們就會看到我們的 controller
\helloLaravel\app\Http\Controllers\controller_name.php
加入以下程式碼
可以看到我們把原先寫在 routes 中呼叫 model 的方法分離成function
如此讓 routes 工作更單純
開頭引入了 App\Task 的命名空間
所以後面可以直接調用 Task 內的函數
因為分離的關係,我們可以把 routs精簡化
只剩下兩行,剩下的部分都被導向 controller 來處裡
上就是 controller 的初步介紹
Routes 設定中
會把 task 作為 get 傳送到 controller
而 controller 改為
可以看到 function 的參數改變,Route Model Binding 預設是搜尋鍵值
這邊的範例也是使用鍵值
routes就是一個路由,現在要真的來使用controller了
直接進入主題
使用 php artisan 來建立 controller檔案
php artisan make:controller {controller_name}
\helloLaravel\app\Http\Controllers\controller_name.php
加入以下程式碼
<?php namespace App\Http\Controllers; use App\Task; class TasksController extends Controller{ public function index() { $tasks = Task::all(); return view('tasks.index') ->with('tasks', $tasks); } public function show($id) { $task = Task::find($id); return view('tasks.show', compact('task')); } }
可以看到我們把原先寫在 routes 中呼叫 model 的方法分離成function
如此讓 routes 工作更單純
開頭引入了 App\Task 的命名空間
所以後面可以直接調用 Task 內的函數
因為分離的關係,我們可以把 routs精簡化
Route::get('/tasks', 'TasksController@index'); Route::get('/tasks/{task}', 'TasksController@show');
只剩下兩行,剩下的部分都被導向 controller 來處裡
上就是 controller 的初步介紹
看到一個很特別的用法:
Route Model Binding
Routes 設定中
Route::get('/tasks/{task}', 'TasksController@show');
會把 task 作為 get 傳送到 controller
而 controller 改為
public function show(Task $task) //Task::find($id);{ return view('tasks.show', compact('task')); }
可以看到 function 的參數改變,Route Model Binding 預設是搜尋鍵值
這邊的範例也是使用鍵值
留言
張貼留言