Php 将参数传递给Laravel中的控制器
我想将Php 将参数传递给Laravel中的控制器,php,laravel,laravel-routing,Php,Laravel,Laravel Routing,我想将对象的id传递给laravel中的控制器。基本上,我有一个页面,显示与书籍相关的信息。用户可以选择将主题添加到该书中。下面的一行是他们单击的链接,以打开创建主题表单: <a href="{{action('ThemeController@create')}}" class="btn btn-primary">Add Theme</a> 目前,这将在下拉列表中显示我所有书籍的列表。我宁愿在将用户带到这个表单之前,将用户所读的书的id传递给用户,并使用它。我有办法做到
对象的id
传递给laravel
中的控制器。基本上,我有一个页面,显示与书籍相关的信息。用户可以选择将主题添加到该书中。下面的一行是他们单击的链接,以打开创建主题表单
:
<a href="{{action('ThemeController@create')}}" class="btn btn-primary">Add Theme</a>
目前,这将在下拉列表中显示我所有书籍的列表。我宁愿在将用户带到这个表单之前,将用户所读的书的id
传递给用户,并使用它。我有办法做到吗?我还包括了我的routes.php
文件:
Route::model('book', 'Book');
//Show pages
Route::get('/books', 'BookController@index');
Route::get('book/create', 'BookController@create');
Route::get('book/edit/{book}', 'BookController@edit');
Route::get('book/delete/{book}', 'BookController@delete');
Route::get('book/view/{book}', 'BookController@view');
////Handle form submissions
Route::post('book/create', 'BookController@handleCreate');
Route::post('book/edit', 'BookController@handleEdit');
Route::post('book/delete', 'BookController@handleDelete');
//Themes
Route::model('theme', 'Theme');
Route::get('/themes', 'ThemeController@index');
Route::get('theme/create', 'ThemeController@create');
Route::get('theme/edit/{book}', 'ThemeController@edit');
Route::get('theme/delete/{book}', 'ThemeController@delete');
Route::get('theme/view/{book}', 'ThemeController@view');
Route::post('theme/create', 'ThemeController@handleCreate');
Route::post('theme/edit', 'ThemeController@handleEdit');
Route::post('theme/delete', 'ThemeController@handleDelete');
您仍然可以使用普通的$\u-GET方法。
在您的路线上:
book/create
你可以简单地请求。
book/create?book_id=xxyy
然后在控制器中创建函数
public function create(){
$bookId = Input::get('book_id');
$books = Book::all()->where('book_id' => $bookId);
return View::make('theme.create', compact('books'));
}
请注意:
我已经有一段时间没有使用Laravel了,不要相信Eleqont查询:P。。我只是在里面放了一个理论上的“where”
在这里,你会注意到:
“您不必担心用于请求的HTTP谓词,因为
所有动词的输入访问方式相同。”
因此,无论您使用的是get、put、post还是delete,无论您在标题中包装了什么,都可以使用Input
Class来查找
编辑
只需要添加,您根本不需要修改您的路线。这只是GET请求中的一个简单GET参数。就像在任何其他应用程序中一样。您仍然可以使用普通的$\u-GET方法。
在您的路线上:
book/create
你可以简单地请求。
book/create?book_id=xxyy
然后在控制器中创建函数
public function create(){
$bookId = Input::get('book_id');
$books = Book::all()->where('book_id' => $bookId);
return View::make('theme.create', compact('books'));
}
请注意:
我已经有一段时间没有使用Laravel了,不要相信Eleqont查询:P。。我只是在里面放了一个理论上的“where”
在这里,你会注意到:
“您不必担心用于请求的HTTP谓词,因为
所有动词的输入访问方式相同。”
因此,无论您使用的是get、put、post还是delete,无论您在标题中包装了什么,都可以使用Input
Class来查找
编辑
只需要添加,您根本不需要修改您的路线。这只是GET请求中的一个简单GET参数。就像在任何其他应用程序中一样。我假设您没有使用Laravel的Artisan Controller Make功能?我没有将其用于Conrollers
,但一直将其用于迁移
啊,好吧,我建议您使用资源控制器。。你已经在使用这个结构了。然而,资源控制器将大大简化路由结构:)。当然,除非您不是在构建RESTful应用程序,并且不希望使用Put和Delete。那我就明白了。我假设你没有使用Laravel的Artisan Controller Make功能?我没有在Conrollers
中使用它,但在迁移中使用过它。啊,好吧,我建议使用资源控制器。。你已经在使用这个结构了。然而,资源控制器将大大简化路由结构:)。当然,除非您不是在构建RESTful应用程序,并且不希望使用Put和Delete。那我就明白了。