W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
這里是一個基礎(chǔ)控制器類的例子:
<?php namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class UserController extends Controller {
/**
* 顯示所給定的用戶個人數(shù)據(jù)。
*
* @param int $id
* @return Response
*/
public function showProfile($id)
{
return view('user.profile', ['user' => User::findOrFail($id)]);
}
}
我們可以通過如下方式引導(dǎo)路由至對應(yīng)的控制器動作:
Route::get('user/{id}', 'UserController@showProfile');
注意: 所有的控制器都應(yīng)該擴(kuò)展基礎(chǔ)控制器類。
有一點(diǎn)非常重要,那就是我們無需指明完整的控制器命名空間,在類名稱中 App\Http\Controllers 之后的部分即可用于表示「根」命名空間。 RouteServiceProvider 默認(rèn)會在包含根控制器命名空間的路由群組中,加載 routes.php 此文件。
若你要在 App\Http\Controllers 此目錄深層使用 PHP 命名空間以嵌套化或組織你的控制器,只要使用相對于 App\Http\Controllers 根命名空間的特定類名稱即可。因此,若你的控制器類全名為 App\Http\Controllers\Photos\AdminController,你可以像這樣注冊一個路由:
Route::get('foo', 'Photos\AdminController@method');
和閉包路由一樣,你也可以指定控制器路由的名稱。
Route::get('foo', ['uses' => 'FooController@method', 'as' => 'name']);
要產(chǎn)生一個指向控制器行為的 URL,可使用 action 輔助方法。
$url = action('App\Http\Controllers\FooController@method');
若你想僅使用相對于控制器命名空間的類名稱中的一部分,來產(chǎn)生指向控制器行為的 URL,可用 URL 產(chǎn)生器注冊控制器的根命名空間。
URL::setRootControllerNamespace('App\Http\Controllers');
$url = action('FooController@method');
你可以使用 currentRouteAction 方法來獲取正在執(zhí)行的控制器行為名稱:
$action = Route::currentRouteAction();
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: