创建控制器
要创建填充器,可以使用 artisan 命令提供的 make:controller 方法
- 控制器文件写在:
app/Http/Controllers - 控制器文件的命名:
大驼峰的控制器名 + Controller.php - 控制器通常根据业务划分成多目录管理
/*** 默认生成的控制器保存于 app/Http/Controllers目录下* 参数可以为: 路径 + 控制器名*/php artisan make:controller 控制器名(不需要后缀名)
控制器的路由
// 定义格式如下:
Route::请求方法("路由表达式", "控制器名@方法名")
// ------ 控制器路由写法 -----
Route::get('/invoke/selector', 'TestController@moeInfo');
// ----- 控制器方法实现 -----
class TestController extends Controller {
public function moeInfo() {
phpinfo();
}
}
操作演示
后台目录
Admin, 前台目录Home, 分别创建IndexControllerphp artisan make:controller Admin/IndexController php artisan make:controller Home/IndexControllerIndexController中添加测试函数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\InputFacades 类似于 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";
}
}
