ホームページ > 記事 > PHPフレームワーク > laravelにはいくつかのルートがあります
Laravel には 6 種類のルートがあります: 1. get、構文 "Route::get($uri,$callback)"; 2. post、構文 "Route::post($uri,$callback)" )"; 3. put、構文 "Route::put($uri, $callback)"; 4. patch、構文 "Route::patch($uri, $callback)"; 5. delete、構文 " Route::delete($uri, $callback)"; 6. オプション、構文「Route::options($uri, $callback)」。
このチュートリアルの動作環境: Windows 7 システム、Laravel 6 バージョン、DELL G3 コンピューター。
一文でまとめると:
6 種類 : post、get、put、patch、delete、options
Route::get($uri, $callback); Route::post($uri, $callback); Route::put($uri, $callback); Route::patch($uri, $callback); Route::delete($uri, $callback); Route::options($uri, $callback);
機能: Laravel は、クロスサイト リクエスト フォージェリ (CSRF) 攻撃からアプリケーションを保護する簡単な方法を提供します。クロスサイト リクエスト フォージェリは、認証されたユーザーの ID を利用して未承認のコマンドを実行する悪意のある攻撃です。
実装: 次の文をフォームに追加します: {{csrf_field()}}。詳細については、コード
を参照してください。本質は、フォームにトークン値を追加することです。input type="hidden" name="_token" value="SqlDhf...a stringランダムな文字列 "
原則は次のとおりです: フォームのトークン値が正当かどうかを確認します、正当な場合は、は通過しますが、そうでない場合は通過しません
<form method="POST" action="/profile"> {{ csrf_field() }} ... </form>
post('check',"LoginController@check");
# # 3. ルーティングで put リクエストを実装するにはどうすればよいですか?put('put','LoginController@put');コントローラーの書き込みメソッド: これは基本的なコントローラーの書き込みメソッドです。
リクエスト ページは、次のようにリクエスト タイプを設定します: input type="hidden"
name="_method" value=" put"
ルーティングへの書き込み// put请求
Route::get('putWeb','LoginController@putWeb');
// put的处理页面
Route::put('put','LoginController@put');
// put请求页面
public function putWeb(){
return view('putWeb');
}
// put请求处理页面
public function put(Request $request){
dd($request->input());
}
<form action="put" method="post">
<p>
{{csrf_field()}}
<input type="hidden" name="_method" value="put">
User:
<input type="text" name="user" id="">
</p>
</form>
match (指定されたリクエスト) :Route::match(['get','post'],'/',"IndexController@index ");コントローラ コード:
ユーザーが投稿リクエストを行っているかどうかを判断します、そうである場合はユーザーの検索を出力し、それ以外の場合は通常画面に表示されるデータを出力します。 page
any (すべてのリクエスト) :Route::any('/',"IndexController@index");
5、Laravelの使用例とリソースルーティングの実装(実際のプロジェクトでよく使われる)?ユーザーモジュール、管理モジュールなど (追加、削除、変更、確認): 書き込みルーティングで直接実行すると、多くの問題が発生します Route::get('user/index','UserController@index');
Route::get('user/add','UserController@add');
Route::get('user/edit','UserController@edit');
Route::post('user/insert','UserController@insert');
Route::post('user/update','UserController@update');
Route::get('user/del','UserController@del');
実装:
resourceメソッド: Route::resource('Admin','IndexController'); | GET|HEAD | Admin | Admin.index | App\Http\Controllers\IndexController@index | web | #展示页面
| POST | Admin | Admin.store | App\Http\Controllers\IndexController@store | web | #添加操作
| GET|HEAD | Admin/create | Admin.create | App\Http\Controllers\IndexController@create | web | #添加页面
| DELETE | Admin/{Admin} | Admin.destroy | App\Http\Controllers\IndexController@destroy | web | #删除操作
| PUT|PATCH | Admin/{Admin} | Admin.update |
App\Http\Controllers\IndexController@update | web | #更新操作
| GET|HEAD | Admin/{Admin} | Admin.show | App\Http\Controllers\IndexController@show | web |
| GET|HEAD | Admin/{Admin}/edit | Admin.edit | App\Http\Controllers\IndexController@edit | web | #修改页面
| GET|HEAD | api/user | | Closure | api,auth:api |
{id}',function($ id ){ echo $id##; });複数のパラメータ: Route::get('UserInfo/
{ name}/{sex}',function($name,$sex){ echo $name; echo $ sex; });含める場合と含めない場合があるパラメータ:
疑問符のデフォルト値:Route::get('user/ edit/ {id?}',function($id="デフォルト値"){ echo $id; }); : ありデフォルト値、パラメータがない場合は値を持つことが保証されています 7. コントローラのルート内のパラメータにアクセスするにはどうすればよいですか?
Route::get('UserInfo/{name}/{sex}',"IndexController@UserInfo"); // 新建UserInfo public function UserInfo($a,$sex1){ var_dump($a); var_dump($sex1); }
是什么:就是给路由命名
实现:Route::get('abc',"IndexController@abc")->name('one');
作用:获取别名的url地址:控制器中:route('one');可以到以one为别名的控制器中
作用:通过命名路由实现重定向(实现重定向的一种方式):控制器中:return redirect()->route('one');
实现前后台控制器分离:需要在控制器目录下新建Admin目录和Home目录 在目录中新建控制器
在Route的group方法中指定命名空间:Route::group(['namespace'=>'Admin'],function(){
在Admin中的控制器要写好命名空间,并且继承控制器要use到控制器
//路由中代码 Route::group(['namespace'=>'Admin'],function(){ Route::get('admin','IndexController@index'); Route::get('admin/user','UserController@index'); Route::get('admin/goods','GoodsController@index'); }); Route::group(['namespace'=>'Home'],function(){ Route::get('/','IndexController@index'); }); #需要在控制器目录下新建Admin目录和Home目录 在目录中新建控制器 #注意 需要修改命名空间 控制器中代码 <?php namespace App\Http\Controllers\Admin; use Illuminate\Http\Request; use DB; use App\Http\Controllers\Controller; class UserController extends Controller { //index 方法 public function index(){ echo "我是后台控制器User"; } }
相关推荐:最新的五个Laravel视频教程
以上がlaravelにはいくつかのルートがありますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。