Laravel控制器的目录在项目文件夹下的app\Http\Controllers中,默认有一个文件夹和一个Controller基类,这里它自带的东西我们不需要去动它,后续我们直接添加就行
而Laravel新建Controller不需要手动复制,可以直接通过命令来创建,当然前提是你在这个项目的主路径中,而不是在Controllers或者其他二级路径中。
比如我的项目是在E盘下的Laravel下的一个文件夹中,那我们就要进入该具体文件夹。
然后使用命令:php artisan make:controller TestController
文件夹出现
当然使用其他工具同样可以执行,我这边用来git的gitbash,但注意的是命令只能在该项目的主目录执行,其他文件夹内不可以。
但这样只是创建在Controller文件夹下了,如果我想把文件生成在文件夹下怎么办?
目录:
代码:
php artisan make:controller Home/IndexController
结果:
TestController下演示:
内容:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TestController extends Controller
{
//test方法
public function test(){
return phpinfo();
}
}
路由写法:
//控制器路由写法
Route::group(['prefix'=>'Controller'], function () {
Route::match(['get'],'test', 'GoodsController@test');
});
演示:
Home下IndexController写法
代码:
<?php
namespace App\Http\Controllers\Home;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;//因为所在位置不同,所以引入了Controller基类
class IndexController extends Controller
{
//测试Home下的index方法
public function index(){
echo '这是Home分组下的index方法';
}
}
路由:
Route::group(['prefix'=>'Home'], function () {
Route::match(['get'],'index', 'Home\IndexController@index');
});
截图:
Controller中获取用户输入
获取输入首先需要在命名空间引入门面,但门面本身太长,我们希望给它一个别名方便频繁引用,所以先去 项目目录/config/app.php目录中设置别名。
’Input' => Illuminate\Support\Facades\Input::class,
想要在哪个Controller中获取数据,就在哪个Controller的命名空间中引入Input,当然Input本身也是有很多方法。
1.Input::get(‘参数’,‘指定默认值’)
<?php
namespace App\Http\Controllers\Home;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;//因为所在位置不同,所以引入了Controller基类
use Input;//必须引用
class IndexController extends Controller
{
public function index1(){
//获取一个id值,如果没有,采用第二个参数的默认值
echo Input::get('id','99');
}
}
2.Input::all()
<?php
namespace App\Http\Controllers\Home;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;//因为所在位置不同,所以引入了Controller基类
use Input;//必须引用
class IndexController extends Controller
{
public function index1(){
//获取一个id值,如果没有,采用第二个参数的默认值
echo Input::get('id','99');
//获取全部值,返回的是一个数组
$all = Input::all();
var_dump($all);
}
}
3.Input::get(‘获取指定参数’)
public function index1(){
//获取一个id值,如果没有,采用第二个参数的默认值
echo Input::get('id','99');
//获取全部值,返回的是一个数组
$all = Input::all();
//var_dump($all);
//获取指定信息
dd(Input::get('name'));
}
(dd指令在输出之后会停止执行下方的内容)
4.Input::only([‘id’,‘name’])获取指定的多个数值
public function index1(){
//获取一个id值,如果没有,采用第二个参数的默认值
echo Input::get('id','99');
//获取全部值,返回的是一个数组
$all = Input::all();
//var_dump($all);
//获取指定信息
//dd(Input::get('name'));
//获取指定的几个值,返回数组
dd(Input::only(['id','name']));
}
5.Input::except([‘name’])获取除获取的指定值外所有的值
public function index1(){
//获取一个id值,如果没有,采用第二个参数的默认值
echo Input::get('id','99');
//获取全部值,返回的是一个数组
$all = Input::all();
//var_dump($all);
//获取指定信息
//dd(Input::get('name'));
//获取指定的几个值
//dd(Input::only(['id','name']));
//获取除获取的指定值外所有的值
dd(Input::except(['name']));
}
6. Input::has(‘home’)判断值是否存在,返回布尔
public function index1(){
//获取一个id值,如果没有,采用第二个参数的默认值
echo Input::get('id','99');
//获取全部值,返回的是一个数组
$all = Input::all();
//var_dump($all);
//获取指定信息
//dd(Input::get('name'));
//获取指定的几个值
//dd(Input::only(['id','name']));
//获取除获取的指定值外所有的值
//dd(Input::except(['name']));
//判断某个值是否存在
dd(Input::has('home'));
}