控制器文件路径:
项目根目录appHttpControllersController.php
PhpStorm新建控制器:
![5fe914be9d56ad52c84cdc024ecb1b86.png](https://i-blog.csdnimg.cn/blog_migrate/dc9fcb6f6c671f1637cb15033072687e.jpeg)
右键在控制器目录选择新建 PHP Class,
会自动带上当前目录的命名空间:
![6e5d3d30cd8e90376541b7a5395880ad.png](https://i-blog.csdnimg.cn/blog_migrate/ebfdc764cb398050f7f6d8653242701d.jpeg)
用artisan命令行创建控制器:
![d39b96dba438c39796a8343492a1ceb9.png](https://i-blog.csdnimg.cn/blog_migrate/abb29c7fd93a118fb4a9b37be32f69ac.jpeg)
命令:
php artisan make:controller 控制器名Controller
资源控制器
php artisan make:controller ArticleController -r
分目录创建控制器:
只需要在控制器前面加上目录路径/即可,
同时命名空间等也都加在控制器里。
php artisan make:controller Admin/ArticleController -r
也要遵循大驼峰命名法。
定义路由访问控制器的方法:
![8846774340b26213529e3761ada9eb0d.png](https://i-blog.csdnimg.cn/blog_migrate/69eaae9a26df8e3759047568798cce05.jpeg)
![bee965145c9bfd1540c2a199deb6777b.png](https://i-blog.csdnimg.cn/blog_migrate/c22921bf5aa85b918e64de72a60e4443.jpeg)
Route::get('login','LoginController@index')->name('login');
Route::get('admin/article/{id}','AdminArticleController@show')->name('admin.info');
以下这种分组方式,可以定义路由的前缀,同时定义命名空间的前缀,把相同的放在一个Route的静态方法group里,方便分类。
Route::group(['prefix'=>'admin','namespace'=>'Admin'],function(){
Route::get('article/{id}','ArticleController@show')->name('admin.info');
Route::get('login/index/{id}','LoginController@index')->name('admin.login');
});
浏览器打开访问域名+uri,就可以访问到控制器里的内容。
控制器获取数据的方式
Input类获取数据:
![1bab11b248d218c543ff0c5f75d3f0f4.png](https://i-blog.csdnimg.cn/blog_migrate/60a9ccdfaa58759f0387aba650836f0f.jpeg)
![d1b9eb57f4f056316b15f53f44cf41a5.png](https://i-blog.csdnimg.cn/blog_migrate/bba04655765de2af08fb4da37384d7dd.jpeg)
步骤:
1、定义路由
2、引入Input类
3、几种获取数据的静态方法测试使用
Request类获取数据:
新建控制器时默认use了一个类,
use IlluminateHttpRequest;
![8a698954e5c96f5b64120b1fcf39d904.png](https://i-blog.csdnimg.cn/blog_migrate/fc406df849342e32e444f1155ad027ae.jpeg)
方法中可以直接使用$request类来操作表单信息获取
![5956fa3c51c10e86698149deb2b2a7e9.png](https://i-blog.csdnimg.cn/blog_migrate/fff7a54228dde148cc5a0bdb0448704a.jpeg)
![1c84adf0c1b4e16e3cca1ec75de414db.png](https://i-blog.csdnimg.cn/blog_migrate/688f8831b0f3676a625fb474f12d1e80.jpeg)
$request->isMethod()方法,判断是什么请求类型
request类还可以获取文件上传file等,就是它可以获取一切用户提交的数据。
辅助函数获取数据:
![ac241a330bf9bf0405f440b8e806da86.png](https://i-blog.csdnimg.cn/blog_migrate/339b721d892ebea67aed3cc72b56dcc4.jpeg)
这个函数,一般用在模型当中,模型还没有导入前面的request类。
可以打印该函数,
dump(get_class_methods(request()));
该函数返回的是一个对象,所以可以查看该对象的所有方法名称,与引入的request类其实是同一个类。