【问题标题】:how to pass value to controller from view in Laravel如何从 Laravel 的视图中将值传递给控制器
【发布时间】:2026-02-19 17:45:01
【问题描述】:

大家好,我正在开发 Laravel 5.2,但我陷入了混乱。 实际上我想将 book_id 从超链接传递给控制器​​,这样每当使用基于 book_id 控制器的链接点击时,就会返回所选书籍的描述。如何做到这一点?

查看

<a href="{{url('bookdetail/'.$value->book_id)}}" class="title" >{{$value->book_name}}</a><br>

控制器

public function viewbook($id)
{
    $book_detail= DB::select('select * from book_master where book_id=?',[$id]);
    return view('book_detail',['bookdetail'=>$book_detail]);
}

路线

Route::any('/bookdetail/{id}','BookDetailsController@viewbook');

我还想知道谁为该超链接创建路由,将 book_id 传递给 viewbook 方法

【问题讨论】:

  • 那么问题出在哪里?
  • 返回方法 App\Http\Controllers\BookDetailsController::viewbook() 不存在

标签: php laravel laravel-5.2


【解决方案1】:

它应该看起来像:

BookDetailsController控制器:

class BookDetailsController extends Controller {
  public function viewbook($id) {

     $book_detail = DB::table('book_master')
                    ->where('book_id',$id)
                    ->first();

     return view('book_detail',['bookdetail'=>$book_detail]);

  }
}

路线没问题,然后在你的视图中你可以通过{{$bookdetail-&gt;fieldName}}访问书籍详情

希望你做对了。

【讨论】:

  • 不,实际上我是对的,我只需要添加一条不带任何参数的新路线,现在它工作正常,谢谢 btw :)
  • @BhavikBamania 没问题,但无论如何你应该使用查询生成器而不是原始表达式(在处理简单查询时)。
  • 是的,注意到将使用查询生成器:)
【解决方案2】:

可惜我只需要在routes.php中添加一个路由

Route::any('/bookdetail','BookDetailsController@viewbook');

现在它对我来说很好用!

【讨论】:

    最近更新 更多