Laravel 从表单传递变量
Laravel Passing Variable from Forms
我是 Laravel 的新手,正在学习超级基础教程。
但是教程没有附带编辑记录部分,我正在尝试扩展自己。
路线:
Route::controller('admin/products', 'ProductsController');
控制器:
class ProductsController extends BaseController
{
public function getUpdate($id)
{
$product = Product::find($id);
if ($product) {
$product->title = Input::get('title');
$product->save();
return Redirect::to('admin/products/index')->with('message', 'Product Updated');
}
return Redirect::to('admin/products/index')->with('message', 'Invalid Product');
}
..ECT...
我知道控制器正在请求一个 ID 以供使用,但我不知道如何在表单为 posted/get 时将产品 ID 传递给它。
表格:
{{Form::open(array("url"=>"admin/products/update",'method' => 'get', 'files'=>true))}}
<ul>
<li>
{{ Form::label('title', 'Title:') }}
{{ Form::text('title') }}
{{ Form::hidden('id', $product->id) }}
..ECT...
{{ Form::close() }}
我最初的想法是在表单 URL 中传递产品 ID,例如:
{{Form::open(array("url"=>"admin/products/update/{{product->id}}", 'files'=>true))}}
但也不走运。
我得到的错误是:
Missing argument 1 for ProductsController::postUpdate()
有趣的是,如果我直接输入 URL:
http://localhost/laravel/public/admin/products/update/3
有效,id 为 3 的项目已更改。
所以谁能帮我告诉我如何用表格传递 id 吗?
非常感谢
这里的第一个问题如下:
{{Form::open(array("url"=>"admin/products/update/{{product->id}}", 'files'=>true))}}
{{product->id}}
有两处错误:
- 应该是
{{$product->id}}
- 但无论如何它都行不通,因为 {{Form::...}} 内的内部 {{..}} 不会被识别,因为它在字符串内,因此是字符串本身。
你要么这样写:
{{Form::open(array("url"=>"admin/products/update/".$product->id, 'files'=>true))}}
或者你在你的 routes.php
文件中给你的路线一个名字,然后这样做:
{{Form::open(array('route' => array('route.name', $product->id, 'files'=>true)))}}
我更喜欢第二种方式
您可能还想查看 Form Model Bingin
我是 Laravel 的新手,正在学习超级基础教程。 但是教程没有附带编辑记录部分,我正在尝试扩展自己。
路线:
Route::controller('admin/products', 'ProductsController');
控制器:
class ProductsController extends BaseController
{
public function getUpdate($id)
{
$product = Product::find($id);
if ($product) {
$product->title = Input::get('title');
$product->save();
return Redirect::to('admin/products/index')->with('message', 'Product Updated');
}
return Redirect::to('admin/products/index')->with('message', 'Invalid Product');
}
..ECT...
我知道控制器正在请求一个 ID 以供使用,但我不知道如何在表单为 posted/get 时将产品 ID 传递给它。
表格:
{{Form::open(array("url"=>"admin/products/update",'method' => 'get', 'files'=>true))}}
<ul>
<li>
{{ Form::label('title', 'Title:') }}
{{ Form::text('title') }}
{{ Form::hidden('id', $product->id) }}
..ECT...
{{ Form::close() }}
我最初的想法是在表单 URL 中传递产品 ID,例如:
{{Form::open(array("url"=>"admin/products/update/{{product->id}}", 'files'=>true))}}
但也不走运。
我得到的错误是:
Missing argument 1 for ProductsController::postUpdate()
有趣的是,如果我直接输入 URL:
http://localhost/laravel/public/admin/products/update/3
有效,id 为 3 的项目已更改。
所以谁能帮我告诉我如何用表格传递 id 吗?
非常感谢
这里的第一个问题如下:
{{Form::open(array("url"=>"admin/products/update/{{product->id}}", 'files'=>true))}}
{{product->id}}
有两处错误:
- 应该是
{{$product->id}}
- 但无论如何它都行不通,因为 {{Form::...}} 内的内部 {{..}} 不会被识别,因为它在字符串内,因此是字符串本身。
你要么这样写:
{{Form::open(array("url"=>"admin/products/update/".$product->id, 'files'=>true))}}
或者你在你的 routes.php
文件中给你的路线一个名字,然后这样做:
{{Form::open(array('route' => array('route.name', $product->id, 'files'=>true)))}}
我更喜欢第二种方式
您可能还想查看 Form Model Bingin