php - 从按钮单击 laravel 调用路由

标签 php laravel laravel-5 routes balde

我在我的一个项目中使用 Laravel 框架和 blade 模板引擎,我的路线看起来像

Route::get('/problems/{problem-id}/edit', 'AdminController@editProblem');

我在 AdminController 中有 editProblem 方法,它返回一个 View

public function editProblem(Problem $problem) {
        return view('admin.problem-edit', compact('problem'));
    }

我在 View 上有一个按钮,看起来像

<button class="btn btn-xs btn-info pull-right">Edit</button>

现在我想在单击按钮时使用 $problem->id 调用此路由。我需要在路线上传递这些值。

我该怎么做?

最佳答案

在我看来,你应该使用 url() Laravel 方法

要用问题的 id 给你打电话,你可以这样做:

<a href="{{ url('/problems/' . $problem->id . '/edit') }}" class="btn btn-xs btn-info pull-right">Edit</a>

我使用了 anchor 标记,但它会像按钮标记一样呈现,因为我保留了您定义的相同样式类。

为什么要使用 url() 方法?

原因很简单,url 方法将获取 Controller 的完整 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'

public function editProblem($problem_id) {

$problem = \App\Problem::find($problem_id); //If you have your model 'Problem' located in your App folder

return view('admin.problem-edit', compact('problem'));
}

关于php - 从按钮单击 laravel 调用路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38709886/

相关文章:

mysql - Laravel DB 查询组按输出不同

php - 仅当字符串不为空/空时如何解密字符串

php - 使用 MySql 查看我 friend 的共同好友

php - 插入mysql表的问题

php - Laravel Eloquent whereIn,从数据库中检索记录,包括缺失日期

javascript - 在 Laravel Blade 大括号内连接 Javascript 变量

php - 当点击一个链接到一个新的 .php 页面时,该链接不起作用

php - 使用 mysqli 准备语句插入多个值时出错

laravel - 如何在laravel 7中将1000显示为1k

php - 如何使用 laravelcollective/html 验证器的规则数组检查表单的 2 个字段是否具有相同的内容?