第一次接触laravel的时候,无从下手
安装以后,伪静态,设置应用目录为public
访问一下,ok,有laravel的欢迎界面,好像没什么问题
但是当自己想去写一个控制器,去尝试访问一下的时候
发现怎么也找不到是哪个控制器
然后去全局搜索,搜到了模板,修改了,也确实生效了
但是我还是找不到laravel的welcome界面是从哪个控制器渲染的
本想照葫芦画瓢的想法破灭了
没办法,只能先去老老是是看文档,看完了基础,特么的还是没说,怎么写一个控制器能请求到,说实话,其他框架玩惯的,转laravel开始真的头痛
后来发现是强制写路由 不写路由无法访问
路由定义在框架根目录的routes/web.php
在里面发现了我找了很久的欢迎界面的模板渲染
Route::get('/', function () {
return view('welcome');
});
一些简单的代码,可以不用写控制器,laravel支持第二个参数不需要传入控制器位置
直接写个闭包函数,闭包函数内就是访问要执行的代码
控制器在 根目录下的app/http/controller里
例如我们在controller下建立一个文件夹admin
在里面写一个控制器为
注意要继承controller这个基类 我们声明命名空间为controllers下的admin
namespace App\Http\Controllers\admin;
use App\Http\Controllers\Controller;
class TestController extends Controller
{
public function t1(){
echo 1;
}
}
我们想要访问到这个控制器应该这样去写
any代表是所有请求,可以使用get 或者post
参数1是请求什么地址可以访问到这个控制器
参数2是控制器的位置是admin下的TestController控制器的t1方法
Route::any('/t1','admin\TestController@t1');
实际开发中,我们可能需要两个模块,例如一个admin 一个api
每次都写 模块名很麻烦
可以这样去写
Route::group(['namespace' => 'admin'],function(){
Route::any('/t1','TestController@t1');
});
这样闭包函数里的,就可以不用写模块名,他会自动去拼
我们还想更懒一点,因为我们后台的url可能都是 域名/admin开头
Route::group(['namespace' => 'admin','prefix'=>'admin'],function(){
Route::group(['prefix'=>'yiyan'],function(){
Route::any('','YiyanController@index');
Route::any('list','YiyanController@list')->name('admin.yiyan.list');
Route::any('edit','YiyanController@edit');
});
Route::group(['prefix'=>'miaosha'],function(){
Route::any('goods','MiaoshaController@goods');
Route::any('goods/detail','MiaoshaController@goods_detail');
Route::any('create/order','MiaoshaController@create_order');
});
});
prefix代表的就是闭包里面的会自动拼上prefix的值
例如prefix等于admin
里面写/t
那么实际url地址为 域名/admin/t
还有另一种写法
Route::namespace('admin')->group(function(){
Route::prefix('admin')->group(function(){
Route::prefix('yiyan')->group(function(){
Route::any('','YiyanController@index');
Route::any('list','YiyanController@list')->name('admin.yiyan.list');
Route::any('edit','YiyanController@edit');
});
});
});
name是给路由起一个名字,我们可以用
route('路由的name');
来生成url,通常用在模板 laravel里模板输出是{{}}双花括号
也可以不给路由起name
用url函数也可以生成 例如模板内
{{url('admin/yiyan/list')}}
代表的就是生成 域名/admin/yiyan/list的url
版权属于:本文是原创文章,版权归 吾梦小站 所有。
本文链接:https://nikm.cn/archives/41.html
本站所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由地转载和修改,但请务必注明文章来源并且不可用于商业目的。