The Controller laravel learning parameterized request, alias, middleware application, a RESTful

1, using the artisangeneration controller

Create a file directory:app\Http\Controllers

#默认生成
php artisan make:controller TestController 
#初始化生成不包含一些方法
php artisan make:controller TestController --plain
2, the controller and routing module with

Semantic routing module request address custom
controller @connection member methods, the present method is the address of the requested operation performed
returnhere can be returned directly to the client functionally similarecho

1. Normal Mode Request

Routing module code:

Route::get('user/test','TestController@show');

Controller code:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class TestController extends Controller
{
    //
    public function show(){
        return 'this is show function ';
    }
}

2. With reference request

Routing module code:

Route::get('user/test/{id}/{name}','TestController@show');

Controller code:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class TestController extends Controller
{
    //
    public function show($id,$name){
        return 'show方法获取的id:'.$id.' , name:'.$name;
    }
}

3. Alias

Routing module code:

Route::get('/Admin/User/OtherName/{id}',[
    'as'=>'OtherName',
    'uses'=>'TestController@OtherName'
]);

Controller code:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class TestController extends Controller
{
    public function OtherName($id)
    {
    	//这里使用别名还原完整的URL
        return route('OtherName', ['id' => $id]);
    }
}

4. Application Middleware

Routing module code:

//第一种写法
Route::get('/Admin/ConMid',[
    'middleware'=>'login',//中间件小写,大写会当成类名使用
    'uses'=>'TestController@ConMid'
]);
//第二种写法
Route::get('/Admin/ConMiddle','TestController@ConMid')->middleware('login');

Controller code:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class TestController extends Controller
{
    public function ConMid()
    {
        return '测试控制器应用中间件方法';
    }
}

The controller implicit

Note: If no current method, will be reported 404 pages

Routing module code:

Route::controller('test','TestController'); //Route::controller('路由模块','对应的控制器');隐式控制器写法

Example: getaccess test/addmodule addis a process controller, we can then use the controller module getAdd(get请求)/ postAdd(oost请求)invoke methods
controller code:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class TestController extends Controller
{
    public function getAdd()
    {
        return '隐式控制器测试页面';
    }
}

6. RESTful控制器

注意:
Routing module code:

Route::resource('test','TestController'); //Route::resource('路由模块','对应的控制器'); RESTful控制器写法

Controller code:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class TestController extends Controller
{
     /**
     * url:test
     * 请求方式:get
     */
    public function index()
    {
        //
        return 'RESTful首页页面index';
    }


    /**
     * url:test/create
     * 请求方式:get
     */
    public function create()
    {
        //
        return 'RESTful create 添加页面';
    }


    /**
     * url:test
     * 请求方式:post
     */
    public function store(Request $request)
    {
        //
        return 'RESTful store post 请求首页';
    }

    /**
     * url:test/{id}
     * 请求方式:get
     */

    public function show($id)
    {
        //
        return 'RESTful show 请求的id:' . $id;

    }

    /**
     * url:test/{id}/edit
     * 请求方式:get
     */
    public function edit($id)
    {
        //
        return 'RESTful edit 请求的id:' . $id;
    }

    /**
     * url:test/{id}
     * 请求方式:put表单/patch
     * 隐藏域value='PUT'
     */
    public function update(Request $request, $id)
    {
        return 'RESTful 表单update请求的id:' . $id;
    }

    /**
     * url:test/{id}
     * 请求方式:delete
     * 隐藏域value='DELETE'
     */
    public function destroy($id)
    {
        //
        return 'RESTful 表单destroy请求的id:' . $id;
    }
}

Hide domain knowledge has nothing to do with this article: csrf_field () hidden form field validation by the global middleware POST request is processed, you can not comment kernel.php -> verifycsrftoken middleware. Otherwise need to add csrf_field () method is not being given to

Published 156 original articles · won praise 531 · views 110 000 +

Guess you like

Origin blog.csdn.net/qq_39043923/article/details/100655441