【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实例接收路由参数只是方法不同


相关推荐
4***V2029 小时前
PHP在微服务通信中的消息队列
开发语言·微服务·php
亿坊电商9 小时前
PHP框架 vs 原生开发:移动应用后端开发实战对比!
开发语言·php
n***293212 小时前
PHP安全编程实践
开发语言·安全·php
b***748812 小时前
PHP在电子商务系统中的构建
开发语言·php
BingoGo13 小时前
PHP8.6 新的 RFC 提案 Context Managers 优雅管理资源生命周期
后端·php
JaguarJack13 小时前
PHP8.6 新的 RFC 提案 Context Managers 优雅管理资源生命周期
php·服务端
月下的郁王子14 小时前
进阶学习 PHP 中的二进制和位运算
android·学习·php
饭九钦vlog18 小时前
修复重装机kali机器上不了网络域名问题一键脚本
服务器·网络·php
未来之窗软件服务19 小时前
幽冥大陆(二十九)监控平台协议常见地址——东方仙盟练气期
开发语言·php·东方仙盟·东方仙盟sdk·监控协议
拾忆,想起20 小时前
Dubbo网络延迟全链路排查指南:从微服务“快递”到光速传输
网络·网络协议·微服务·架构·php·dubbo