# Controller 控制器
傳值程式碼
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
public function signup(Request $request , $id , $course)
{
$data = ['id' => $id , 'course' => $course , 'url' => '<a href="http://goblinlab.org">http://goblinlab.org</a>'];
$url = '<a href="http://goblinlab.org">http://goblinlab.org</a>';
//作法1 利用view()的第2參數來傳
return view('signup',$data);
//作法2 利用with()方法來傳
return view('signup')->with($data);
//作法3 搭配compact()來建立陣列
return view('signup',compact('id','course','url'));
}
}
視圖接收參數寫法
跳脫程式內容來進行輸出 {{ $id }} <br>
會渲染程式內容並執行來進行輸出 {!! $code !!}<br>
路由的寫法
//8.x以上版本需補上命名空間
Route::get('/users/{id}/courses/{course}', 'App\Http\Controllers\HomeController@signup');
被資源控制器所處理的Action
建立帶resources方法的控制器
php artisan make:controller ItemController --resource --model=Item
–resource 表示希望順便生成7個CRUD方法
–model 表示希望順便加入載入Model的程式碼,可自己加
建立resources 路由
//建立單一表格resource
Route::resource('items','App\Http\Controllers\ItemController');
第一參數為路徑前綴,通常與關連表格名稱相同
第二參數為所接手的控制器名稱
//建立多個表格的resource
Route::resources([
'items' => 'App\Http\Controllers\ItemController',
'posts' => 'App\Http\Controllers\PostController',
]);
建立帶api resources方法的控制器
php artisan make:controller PostController --api --model=Post
建立api resources 路由
Route::apiResource(‘posts’,‘App\Http\Controllers\PostController’);
保護控制器裡的Action
class HomeController extends Controller
{
public function __construct(){
//此控制器的所有方法都需要有登入才能訪問
$this->middleware('auth');
//此控制器的store()需要有登入才能訪問
$this->middleware('auth')->only('store');
//除index()外,此控制器的其他方法需要有登入才能訪問
$this->middleware('auth')->except('index');
}
在路由檔內加入中介層保護
//此路由需要登入才能訪問
Route::get('/users/{id}/courses/{course}', 'App\Http\Controllers\HomeController@signup')->middleware('auth');
生成網址
{{ url(路由路徑) }}
{{ route(路由名稱) }}
發表於 HackMD
302
讚賞 收藏 訂閱