laravel 控制器

Posted 夜愿生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel 控制器相关的知识,希望对你有一定的参考价值。

1.定义控制器

在之间的输出hello world! 通过路由指向控制器就是所为的简单定义控制器。

app/Http/Controllers 目录下建一个控制器 IndexController.php 

<?php

namespace App\Http\Controllers;

use App\User;
use App\Http\Controllers\Controller;

class IndexController extends Controller
{    
    public function index()
    {
        echo ‘Hellow world!‘;
    }
}

注:文件名与类的名相同

在路由定向控制器:

<?php


Route::get(‘index‘, ‘[email protected]‘);

http://localhost/index  就能看到hellow world!

 

2. 控制器与命名空间

app/Http/Controllers 建一个文件夹 admin 下面放置后台管理的控制器

app/Http/Controllers/admin 新建一个控制器  adminController.php 

<?php
// 命名空间也要改为相应的目录
namespace App\Http\Controllers\admin;

use App\User;
use App\Http\Controllers\Controller;

class AdminController extends Controller
{    
    public function index()
    {
        echo ‘Hellow world!‘;
    }
}

在路由指向控制器:

Route::get(‘/admin‘, ‘admin\[email protected]‘);

注意: ‘admin\[email protected]‘  的斜线一定是要"\",  不能是"/"。

除了单一的指向定义,还可以用路由组:

Route::group([‘namespace‘ => ‘Admin‘], function () {
    Route::get(‘/admin‘, ‘[email protected]);
});

 3.单一操作的控制器

 所为单一操作可以无视,其实就是默认的方法,其它的路由器一般默认使用的是index, 这里使用 __invoke

Route::group([‘namespace‘ => ‘Admin‘], function () {
    Route::get(‘/admin‘, ‘[email protected]);
    Route::get(‘/one‘, ‘AdminController‘);//不写方法就使用默认__invoke
    
});

控制器为:

<?php

namespace App\Http\Controllers\admin;

use App\User;
use App\Http\Controllers\Controller;

class AdminController extends Controller
{    
    public function index()
    {
        echo ‘Hellow world!‘;
    }
    public function __invoke()
    {
        echo "单一";
    }
}

 4.路由器的中间件

 

 

 

以上是关于laravel 控制器的主要内容,如果未能解决你的问题,请参考以下文章

需要一种有效的方法来避免使用 Laravel 5 重复代码片段

我在 laravel 中的递归函数不调用自己

Laravel 5.8 有条件地插入 sql 片段

片段中的媒体控制器

避免在 Laravel 控制器中重复代码

Laravel基本使用