laravel学习(三)-----控制器Controller

路由器的部分会指向Controller,下面学习Controller相关知识

artisan命令自动生成controller文件

 php artisan make:controller /Contro/Foo1Controller

在路由中添加中间件

    public function __construct()
    {
    	//添加中间件
    	// $this->middleware('auth');
    	//范围限定
    	$this->middleware('auth')->only('foo1');//只有foo1调用时会使用auth认证
    	// $this->middleware('auth')->only('foo2');//除了foo2之外的方法都会使用auth认证
    }

    public function foo1()
    {
    	return 'hello Controller';
    }

    public function foo2()
    {
    	return 'hello foo2';
    }

这样访问foo1时如果未登陆时内部代码不会执行起来

 

资源控制器

文件类型的CURD操作可以通过artisan命令生成对应controller的方法

php artisan make:controller /Contro/Foo2Controller --resource


//没有create和edit方法  前端跳转页 后端不需要处理
php artisan make:controller /Contro/Foo2Controller --apiresource

尾部多了--resource  

内部的一些方法以及自动定义

<?php

namespace App\Http\Controllers\Contro;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class Foo2Controller extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

 

创建好控制器后,我们只需要在路由中写上对应的控制器指向即可:

Route::resource('foo2','Foo2Controller');

下面列举出对应URI调用接口路径:

(图片来源:https://learnku.com/docs/laravel/6.x/controllers/5138

部分资源路由:

Route::resource('foo2', 'foo2Controller')->only([
    'index', 'show'
]);//就算controller定义了create方法  路由调用时也不会进入该控制器

Route::resource('foo2', 'foo2Controller')->except([
    'create', 'store', 'update', 'destroy'
]);

控制器&路由传参

//Route中传递id参数给控制器Foo3Controller的foo1方法

Route::get('foo3/{id}', 'Foo3Controller@foo1');


//控制器中
function foo1(Request $request, $id)
{
    echo "$id";
}

 

路由缓存

闭包类型的路由不会进行缓存,只会缓存控制器类的缓存可以通过

//查看当前存在路由
php  artisan route:list 

清除路由缓存

php artisan route:clear

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值