我在我的一个项目中使用Laravel框架和刀片模板引擎,其中我有一条路径,看起来像
Route::get('/problems/{problem-id}/edit', 'AdminController@editProblem');
我在AdminController中有editProblem方法,它返回一个视图
public function editProblem(Problem $problem) {
return view('admin.problem-edit', compact('problem'));
}
我在视图上有一个按钮,看起来像
<button class="btn btn-xs btn-info pull-right">Edit</button>
现在我想在点击按钮时用$problem->id
调用这个路由,我需要在路由上传递这些值。
我怎么能这么做呢?
5条答案
按热度按时间ygya80vv1#
在我看来,应该使用url()Laravel方法
要使用问题ID呼叫您的路由,您可以执行以下操作:
我使用了一个锚标签,但是它的呈现方式与button标签类似,因为我保留了您定义的样式类。
为什么要使用url()方法?
原因很简单,url方法会得到你控制器的完整url,如果你不使用这个方法,href链接会被附加到当前url。
例如,假设按钮位于给定页面内
yourdomain.com/a-given-page/
当有人点击你的按钮时,结果将是:
yourdomain.com/a-given-page/problems/{problem-id}/edit
当你想得到这个:
yourdomain.com/problems/{problem-id}/edit
关于editProblem方法的一些注意事项
您的路由具有“$id”,因此需要在方法中接收此“$id
5t7ly7z52#
试试这个:
现在,您可以在blade中使用此路由,仅使用name for post,并同时获得这两个路由
POST路径示例:
如果您通过提交按钮提交表格,请单击
如果您是通过ajax提交表单上的按钮点击
dsekswqp3#
您需要创建一个指向此路由的链接:
如果您使用命名路由,这将更加容易:
然后你只需要调用
route
方法:rsl1atfo4#
要求查询路线。因此:
在 * web.php * 中
jckbn6z75#
我使用了下面的代码,它的工作。