【Laravel】Laravel框架中的控制器

控制器

在Laravel框架中,控制器的主要作用是接收用户的请求,调用模型处理数据,最后通过视图展示数据。

一、控制器的创建

控制器文件的保存目录为app\Http\Controllers,在该目录下已经提供了一些示例文件

Laravel 提供了自动生成控制器的命令。

cmd 复制代码
php artisan make:controller 控制器名
  • php artisan表示使用Laravel提供的artisan工具

  • make:controller表示生成控制器,在后面书写控制器名

  • 控制器名采用大驼峰的形式,后面加上Controller后缀,如TestController

新建一个名字为的TestController控制器文件

shell 复制代码
php artisan make:controller TestController

如果出现这种情况就是没有PHP环境

在环境变量里面找到path添加PHP路径

laravel根目录下启动cmd输入成功

创建不同模块下的控制器命令:

shell 复制代码
php artisan make:controller Admin/TestController

自动生成以下代码

二、控制器路由

控制器路由是路由的一种定义方式

  1. 定义路由时,基本都是通过传入一个回调函数来处理请求,而控制器路由则是传入一个指定的控制器和方法来处理请求。
  2. 将回调函数修改为控制器类名@方法名即可实现控制器路由

web.php

php 复制代码
Route::get('admin/test1','Admin\TestController@test1');

TestController.php

php 复制代码
public function test1()
{
  return '这是test方法';
    //
}

访问http://localhost/admin/test1

三、接收用户输入

3.1 通过Request实例接收

Request实例保存了当前HTTP请求的信息,通过它可以获取用户输入的数据

  1. 接受url参数

    TestController.php

    php 复制代码
     public function input(Request $request)
        {
            $name=$request->input('name');
            return 'name的值为'.$name;
        }

    web.php

    php 复制代码
    Route::get('test/input','TestController@input');

    访问 http://localhost/test/input?name=你想输入的内容

  2. 接收路由参数

    路由参数可以直接在对应的方法中通过形参来接收

    TestController.php

    php 复制代码
    <?php
    
    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    
    class TestController extends Controller
    {
        //
        public function input(Request $request)
        {
            $name=$request->name;
    
        return 'name的值为' . $name;
        }
    }

    web.php

    php 复制代码
    Route::get('test/input/{name}','TestController@input');

    访问http://127.0.0.1/test/input/你想输入的内容

3.2 通过路由参数接收

路由参数可以直接在对应的方法中通过形参来接收

TestController.php

php 复制代码
    public function input($name)
        {
            return 'name的值为' . $name;
        }

web.php

php 复制代码
Route::get('test/input/{name}','TestController@input');

访问http://127.0.0.1/test/input/你想输入的内容

注:通过路由参数接收和通过Request实例接收路由参数只是方法不同


相关推荐
kdniao11 小时前
PHP 页面中如何实现根据快递单号查询物流轨迹?对接快递鸟在途监控 API 实操
android·开发语言·php
郑州光合科技余经理1 小时前
同城配送调度系统实战:JAVA微服务
java·开发语言·前端·后端·微服务·中间件·php
码界奇点2 小时前
基于eBPF技术的高性能网络防火墙系统设计与实现
开发语言·网络·毕业设计·php·wpf·go语言·源代码管理
m0_748229994 小时前
Laravel4.x核心更新全解析
开发语言·php
h7ml5 小时前
电商返利系统中佣金计算的幂等性保障与对账补偿机制实现
服务器·前端·php
北辰当尹5 小时前
【小迪安全2023】day43 php应用&SQL注入&符号拼接&请求方法&HTTP头&JSON&编码类
sql·安全·php
csdn_aspnet6 小时前
PHP常用算法解析:从Web开发到性能优化的实战
php
嵌入式×边缘AI:打怪升级日志6 小时前
Libmodbus 源码总体分析:框架、数据结构与核心函数详解
开发语言·数据结构·php
Remember_9936 小时前
Spring 中 REST API 调用工具对比:RestTemplate vs OpenFeign
java·网络·后端·算法·spring·php
北辰当尹21 小时前
【小迪安全2023】day42 php应用&mysql架构&sql注入&跨库查询&文件读写&权限操作
mysql·安全·php