关于路由的一个问题,试了下评论的答案,但是都报错了,这是为什么呢

我看到文档里面有这个

生成指定路由的 URL

// 生成链接…
$url = route(‘profile’);

假设我在我的routes/web.php文件内添加以下路由

Route::get('pro',function(){
    return 'pro'
})->name('profile');

上面这条路由命名为profile,
// 生成链接…
$url = route(‘profile’);
我想问下我怎么在其他路由中使用这个$url变量?
当访问 pro 时候,这变量又没有创建,当访问其他路由时候又用不到这条路由,这变量也没创建,这怎么使用这个变量?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 6

在使用的地方使用 route(’profile‘) 生成就好了

3年前 评论
$url = route ('profile');
Route::get('pro',function() use ($url) {
    return 'pro'
})->name('profile');

你所问的是闭包的传递变量而已

3年前 评论
donggan (楼主) 3年前

你好,为什么当我把下面代码贴到web.php中后

$url = route ('profile'); Route::get('pro',function() use ($url) { return 'pro' })->name('profile');

访问 pro 路由时出现错误 Symfony\Component\Routing\Exception\RouteNotFoundException Route [profile] not defined.

3年前 评论
lyxxxh 3年前
donggan (作者) (楼主) 3年前
$url = route ('profile');  // 报错是在这里,先执行这里此时还没有名称为 profile 的路由
Route::get('pro',function() use ($url) { return 'pro' })->name('profile');

你可以这样

Route::get('profile',function() { return 'profile' })->name('profile'); // 定义profile路由
$url = route ('profile');  // 获取 路由url
Route::get('pro',function() use ($url) { return 'pro' })->name('pro'); // 在另一个路由中使用
// 或者
Route::get('pro1',function() { return route('profile') })->name('pro1'); 
3年前 评论
donggan (楼主) 3年前

@风吹过有夏天的味道 Route::get('profile',function() { return 'profile' ;})->name('profile'); // 定义profile路由 $url = route ('profile'); // 获取 路由url Route::get('pro',function() use ($url) { return 'pro'; })->name('pro'); // 在另一个路由中使用

你确定可以吗,为什么我加到代码中,访问 homestead.test/pro 会提示Route [profile] not defined.

3年前 评论
largezhou 3年前

哥们,代码不应该在控制器中写的吗(虽然可以在路由闭包写,但不建议这么做),执行也有先后顺序吧,建议你先看看文档。别提这样的问题,我难受。如果你写在控制器中/视图中 提示该路由找不到,可能有以下几种情况 1.路由有缓存,使用php artisan route:clear进行清除缓存 2.有可能是opcache开启了缓存,关闭掉opcache或者是执行opcache_reset()函数

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!