这一节我们来探讨laravel的路由,laravel框架是采取强制路由的,也就是说,需要提前定义好路由才可以访问,那么什么是路由呢?
1、路由定义:
将用户的请求按照事先规划的方案提交给指定的控制器或者功能函数来处理,简单来说就是访问地址,例如:
打开laravel9\my-app\routes\web.php, 这个是默认的路由文件
可以看到框架已经帮我们定义有一个路由:
use Illuminate\Support\Facades\Route;
Route::get('/',function(){
return view('welcome');
});
启动框架服务:php atrtisan serve,然后访问:,就可以访问这个路由了
2、路由的创建方式
Route::请求方式(‘请求的url’,匿名函数或者控制响应的方法)
Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);
我们在web.php创建自定义一个路由:
Route::get('/myapp', function () {
return '这个是路由';
});
然后打开浏览器访问:,可以见到以下成功的效果:
证明我们的创建这个路由是成功的,在上面6种请求方式中,最常用的是get/post,
创建一个post路由:
Route::post('user',function(){
echo "这个是post请求的路由";
});
打开postman工具验证,这个路由,
说明: post表单提交数据报419错误,原因是表单提交必须带上_token值,防止csrf攻击,这个时候需要在app\Http\Middleware\VerifyCsrfToken.php中,添加’user’路由
class VerifyCsrfToken extends Middleware
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array<int, string>
*/
protected $except = [
//
'user'
];
}
2、两种匹配请求url的路由方式
Route::match(['get', 'post'], '/', function () {
//
});
以上表示匹配固定请求方法的路由
Route::any('/', function () {
//
});
以上表示匹配任意请求的路由
我们添加这两种路由:
Route::match(['get', 'post'], '/match', function () {
echo '这个是match';
});
然后打开浏览器进行验证,如下图
Route::any('/any', function () {
echo '这个是any';
});
打开浏览器进行验证,可以见到成功的验证,如下图
这一节的路由介绍,就到这里了。