创建控制器

要创建填充器,可以使用 artisan 命令提供的 make:controller 方法

  • 控制器文件写在:app/Http/Controllers
  • 控制器文件的命名:大驼峰的控制器名 + Controller.php
  • 控制器通常根据业务划分成多目录管理
    1. /**
    2. * 默认生成的控制器保存于 app/Http/Controllers目录下
    3. * 参数可以为: 路径 + 控制器名
    4. */
    5. php artisan make:controller 控制器名(不需要后缀名)

控制器的路由

// 定义格式如下:
Route::请求方法("路由表达式", "控制器名@方法名")

// ------ 控制器路由写法 -----
Route::get('/invoke/selector', 'TestController@moeInfo');

// ----- 控制器方法实现 -----
class TestController extends Controller {
    public function moeInfo() {
        phpinfo();
    }
}

操作演示

  1. 后台目录Admin, 前台目录Home, 分别创建IndexController

    php artisan make:controller Admin/IndexController
    php artisan make:controller Home/IndexController
    
  2. IndexController中添加测试函数sayHello ``` <?php

namespace App\Http\Controllers\Admin;

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

class IndexController extends Controller { public function sayHello() { echo “Welcome to Moe Admin Control Panel”; } }


3. 前后台路由设置
```php
/*
 * get( 访问路径【以 项目根路径/public 为当前路径】, 源文件路径【 app/Http/Controllers 为当前路径】 )
 * 访问 "项目根路径/home" 时, 会执行 "app/Http/Controllers/Home/IndexController.php" 文件的 index方法
 * 写法: 路径\类名@方法名
 * 注意: 源文件路径中,开头不需要 \ , 类名不需要带 .php 后缀, 否则报找不到该类的错误
 */
Route::get('/admin', 'Admin\IndexController@sayHello');
Route::get('/home', 'Home\IndexController@sayHello');

接收用户输入

接收用户输入的类: Illuminate\Support\Facades\Input Facades 类似于 Swift 中的抽象类或接口

可以在 config/app.php 中定义长串的别名 (aliases数组中定义)

// 注意不能修改名称, 即左侧Input不能改为自定义名称
'Input' => Illuminate\Support\Facades\Input::class,

示例代码

// 需要导入相关类
// use Illuminate\Support\Facades\Input;
use Input;

class IndexController extends Controller
{
    public function getData() {
        /**
         Input::get(参数的名字,无参时使用的默认值)
         获取get请求中指定id对应的参数,如果没有则使用第二个参数为默认值(可选)
         */
        echo Input::get('id', 1213317) . "<br/>";

        // 获取全部的值 (数组形式返回)
        // $all = Input::all();
        // var_dump($all);

        // 获取指定的值
        // $all = Input::get('name');

        // 获取指定的几个值
        // $all = Input::only(['name', 'age']);

        // 获取除指定值之外的其余值
        // $all = Input::except(['name']);

        // 判断某个值是否存在
        $all = Input::has('name');

        // dump + die, 打印并中止操作(不执行后续代码). dd是laravel框架的函数
        dd($all);
        echo "die, never do this";
    }
}