1.laravel基础(一)路由和MVC

1.核心目录

  • app 核心代码,业务逻辑的主要操作目录
  • bootstrap 启动,自动加载目录
  • config 配置文件
  • database 数据自动填充文件
  • public 静态文件
  • resources 视图文件
  • storage 编译后产生的文件
  • tests 单元测试目录,测试代码
  • vendor composer 加载依赖的模块

路由和MVC

  • 路由

    • 1.简介

      将用户请求转发给相应的程序进行处理,建立url和程序之间的映射
      请求类型 get,post,put,patch,delete

    • 2.基本路由
      • get请求
          Route::get('basic1',function(){
              return 'hello world';
          });
      • post请求
          Route::post('basic2', function(){
              return 'basic2';
          });
    • 3.多请求路由

       Route.match(['get', 'post'], 'multy1', function(){
            return 'multy1'
       }); 
      
       Route::any('multy2', function(){
            return 'multy2'
       });
    • 4.路由参数

       Route::get('user/{id}', function($id){
          return 'user-' . $id;
       });
      
       Route::get('user/{name?}', function($name = null){
          return 'user-name-' . $name;
       });
      
       Route::get('user/{name?}', function($name = 'sean'){
          return 'user-name-' . $name;
       })->where('name','[A-Za-z]+');
      
      Route::get('user/{id}/{name?}', function($id, $name = 'sean'){
          return 'user-id-' . $id . 'name-' . $name;
       })->where(['id'=>'[0-9]+' , 'name'=>'[A-Za-z]+']);
    • 5.路由别名
      Route::get('user/member-center', ['as' => 'center'] , function(){
        return route('center');
      });

      生成别名center的优点,可以在控制器,路由,模板中生成别名对应的url,即使更改路由为user/member-center1,使用别名center即可,无需更改

    • 6.路由群组

      Route::group(['prefix'=>'member'], function(){
      
          Route::get('user/member-center', ['as' => 'center'] , function(){
            return route('center');
          });
      
          Route::any('multy2', function(){
                return 'multy2'
           });
      
      });

      前缀member,访问地址变为member/user/member-center , member/multy2

    • 7.路由中输出视图
      Route::get('view', function(){
        return view('welcome');
      });
  • 控制器

    • 怎么样新建一个控制器

        namespace App\Http\Controllers;
        class MemberController extends Controller{
      
            public function info($id){
                return 'member-info' . $id;
            }
        }
    • 控制器和路由怎样进行关联

        Route::get('member/info' , 'MemberController@info)';
      
        Route::get('member/info', ['uses'=>'MemberController@info']);
        Route::post('member/info', ['uses'=>'MemberController@info']);
        Route::any('member/info', ['uses'=>'MemberController@info']);
    • 关联控制器后,路由的特性怎么用
        *别名*
        Route::any('member/info', [
          'uses'=>'MemberController@info',
          'as'=>'memberinfo'
        ]);
        *传参*
        Route::any('member/{id}', ['uses'=>'MemberController@info'])
        ->where('id','[0-9]+');
  • 视图
    • 怎样新建视图
      1.一个视图对应一个控制器
      2.创建member目录,创建info.blade.php
      3.MemberController.php中指定模板文件 return view('member/info')
    • 怎样输出视图
        return view('member/info', [
            'name'=>'tiancheng',
            'age' =>'18'
        ]);
      在视图中
      {{ $name }}
      {{ $age }}
  • 模型

    • 怎样新建模型
      namespace App;
      use Illuminate\Database\Eloquent\Model;
      class Member extends Model{
          public static function getMember(){
              return 'member name is sean';
          }
      }
    • 怎样使用模型

      打开MemberController 控制器

      Member::getMember();
posted @ 2017-03-13 23:20  涵叔  阅读(127)  评论(0)    收藏  举报