Laravel框架中的路由和控制器操作实例分析

吾爱主题 阅读:136 2021-09-22 16:37:00 评论:0

本文实例讲述了Laravel框架中的路由和控制器操作。分享给大家供大家参考,具体如下:

路由

  • 简介:
    • 将用户的请求转发给相应的程序进行处理
    • 作用:建立url和程序之间的映射
    • 请求类型:get、post、put、patch、delete
    • 目录:app/http/routes.php
  • 基本路由:接收单种请求类型
?
1 2 3 4 //get请求 Route::get( 'hello1' , function (){   return 'hello world' ; })
?
1 2 3 4 //post请求 Route::post( 'hello2' , function (){   return 'hello world' ; })
  • 多请求路由:接收多种请求类型
?
1 2 3 4 5 6 7 8 9 //get、post请求 //match用来匹配指定请求的类型 Route::match([ 'get' , 'post' ], 'mulity' , function (){     return 'mulity request' ; }) //any匹配所有类型的请求 Route::any( 'mulity2' , function (){     return 'mulity2 request' ; })
  • 路由参数
?
1 2 3 4 5 6 7 8 9 10 Route::get( 'user/{id}' , function ( $id ) {      return 'User ' . $id ;}); Route::get(‘user/{name?}', function ( $name = null){ Return ‘name'. $name }); Route::get( 'user/{name}' , function ( $name ) {      //})->where('name', '[A-Za-z]+'); Route::get( 'user/{id}' , function ( $id ) {      //})->where('id', '[0-9]+'); Route::get( 'user/{id}/{name}' , function ( $id , $name ) {      //})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);
  • 路由别名
?
1 2 Route::get( 'user/profile' , [ 'as' => 'profile' , function () {     //}]);
  • 路由群组
?
1 2 3 4 //路由前缀 Route::group([ 'prefix' => 'admin' ], function () {     Route::get( 'users' , function () {      // Matches The "/admin/users" URL  });});
  • 路由输出视图
?
1 2 3 Route::get( '/' , function () {      return view( 'welcome' );    });

控制器

  • 简介
    • 将请求逻辑交由控制类处理,而不是都交给一个routes.php文件
    • 控制器可以将相应的php请求逻辑集合到一个类中
    • 存放位置app/Http/Controllers
  • 基础控制器:在laravel中,默认所有的控制器都继承了控制器基类
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?php    //使用命名空间    namespace App\Http\Controllers;    use App\User;    use App\Http\Controllers\Controller;    class UserController extends Controller    {      /**    * 显示指定用户的个人信息    *    * @param int $id    * @return Response    */    public function showProfile( $id )    {      return view( 'user.profile' , [ 'user' => User::findOrFail( $id )]);    }    }
  • route 访问控制器,利用 PHP 的命名空间机制以嵌套的方式组织控制器在 App\Http\Controllers 目录下的结构的话,引用类时只需指定相对于 App\Http\Controllers 根命名空间的类名即可
?
1 2 3 4 5 6 7 8 //@后面内容为所要访问的方法 Route::get( 'foo' , 'Photos\AdminController@method' ); //也可以指定控制器路由的名称 Route::get( 'foo' , [ 'uses' => 'FooController@method' , 'as' => 'name' ]); //通过助手方法来生成ur $url = route( 'name' ); //传参$id Route::get( 'user/{id}' ,[ 'uses' => 'MemberController@info' ])->where( 'id' , '[0-9]+' );

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

原文链接:https://blog.csdn.net/Air_hjj/article/details/68488462

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容