laravel控制器


控制器的使用:(C)


MVC三层架构:

  • M:model模型
  • V:view视图
  • C:controller控制器

1.控制器:


将用户的输入输出操作进行分开。用来接收用户的请求,来调度模型做数据表的交互操作。
返回的数据交给view视图进行展示。控制器将数据传给view视图,view视图用来展示数据。
其中auth存放的时框架自带的auth认证相关的示例控制器文件,Controller.php文件是框架的基类控制器。


2.controller控制器可以分目录管理;


前端后台区分的时候需要分目录进行管理;分目录管理意思就是分模块管理。


3.控制器的命名:


大驼峰命名加上Controller.php


4.结构代码如何生成:


在自己创建的文件除打开命令行。
直接在controller文件夹下创建,输入php artisan make:controller TestController,,,这个方法创建的控制器会有相应代码。
创建后controller下会有一个TestController.php,打开为,

<?php
//声明当前类的命名空间
namespace App\Http\Controllers;
//引入request空间元素
use Illuminate\Http\Request;
//声明TestController并集成Controller
class TestController extends Controller
{
    //
}

在controller下创建的文件夹下创建,输入:php artisan make:controller Admin/TestController
其中Admin是创建的文件名,意思是文件路径为:controller/Admin/TestController
在这里插入图片描述
创建后controller/Admin下会有一个TestController.php,打开为,

<?php

namespace App\Http\Controllers\Admin;
//比直接在controller文件夹下创建的多了下面这行代码,
//因为这两个不在一个文件目录下
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class TestController extends Controller
{
    //
}

分目录管理时,创建可以用/创建,也可以用\创建,建议使用/来创建,windowas系统下都可以使用,Linux系统下只能使用/


5.控制器路由:


用路由规则调用控制器方法,而不用回调函数了。
Route::请求方法(‘路由表达方式’,‘控制器@方法’);
写在route下的web.php文件下:

首先在controller下的TestController创建控制器路由;

//写控制器路由,控制器@控制器方法  app/http/Controller下的TestController
Route::get('test1','TestController@test1');

然后在contoller/TestController.php文件夹下填写test1方法

//声明当前类的命名空间
namespace App\Http\Controllers;
//引入request空间元素
use Illuminate\Http\Request;
//声明TestController并集成Controller
class TestController extends Controller
{
   //test1方法:
   public function test1(){
        phpinfo();
   }
}

然后在网页输入自己的域名加test1,,,,,我的就是syx.cn/test1
在这里插入图片描述
在刚在创建的controller/Admin/TestController创建控制器路由:
在web.php创建控制器路由

//写控制器路由,控制器@控制器方法  app/http/Controller/Admin下的TestController
//要用\\\否则报错
Route::get('test0','Admin\TestController@test0');

然后在controller/Admin/TestController.php文件夹下填写test0方法

<?php

namespace App\Http\Controllers\Admin;
//比直接在controller文件夹下创建的多了下面这行代码,
//因为这两个不在一个文件目录下
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class TestController extends Controller
{
    //test0方法:
    public function test0(){
         phpinfo();
    }
}

在网页中输入 syx.cn/test0
在这里插入图片描述


6.接收用户输入,


input门面在php版本为5. 几版本才可以运行

  1. 查看php版本,在创建的laravel项目的目录下,,,按住shift+鼠标右击,选择在此处打开命令行窗口,输入php artisan --version查看版本号,例如我的 7.1.3版本是不可使用input门面的
    在这里插入图片描述
    2.可以重新建立一个laravel文件,并指定其php版本;
    在cmd命令行输入以下内容,指定了路径为D:/laraveldemo/two,,保证two文件夹里没有文件才可以;
    composer create-project laravel/laravel=5.5.28 --prefer-dist D:/laraveldemo/two
    创建成功后D:/laraveldemo/two文件会有24个文件,但是我的只有22个

在新创建的laravel项目里右击+shift----在此处打开命令行-----输入php artisan --version查看php版本
现在就是5.5.48版本了 ,input门面就可以运行了。
在这里插入图片描述

接收用户输入内容的类;Illuminate\Http\Request
Facades:门面的思想,门面是介于一个类的实例化,与没有实例化中间的状态。其实是一个类的接口实现,在这个状态下可以不实例化类但是调用类的方法。就是静态调用
Inpute::get(‘参数的名字’,‘如果参数没有被传递,使用默认值’)
Inpute::all();获取所有的用户输入,返回数组
Inpute::get(‘参数的名字’);获取单个的用户输入,获取不到返回null
Inpute::only([‘id’,‘age’]);获取指定几个用户输入,返回数组
Inpute::except([‘id’,‘age’]);获取指定用户以外的所有的参数,返回数组。
Input::has(‘name’);用来判断某个输入的参数是否存在,返回bool

既可以使用get也可以使用post

在laravel中使用facades,可以在config/app.php下定义长串的别名,(在aliases数组中定义别名)
输入这个命令:
‘Input’=> Illuminate\Support\Facades\Input::class,
在这里插入图片描述
定义好后数组key就是类的别名,在控制器中可以直接use别名
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值