在我的应用程序中,我希望简化表单并更改Form::model
以同时使用更新和插入,为了具备此功能,我创建此route:controller
以显示视图并对其进行修改:< / p>
Route::controller(
'customers' , 'customersController',
array(
'getIndex' =>'customers.index',
'postUpdate'=>'customers.update'
)
);
customersController
控制器类:
<?php
class customersController extends \BaseController
{
public function getIndex()
{
if ( Auth::check() ){
$customers = new Customers;
return View::make('layouts.customers')->with('customers', $customers);
}
return Redirect::route('dashboard');
}
public function postUpdate($id)
{
print_r( $id);
die;
}
}
?>
在getIndex
我可以返回查看customers.blade.php,我可以创建一个新变量new Customers
,在视图中我可以从创建的新实例创建下面的表单客户:
{{ Form::model($customers,array('route' => array('customers.update', $customers->id))) }}
...
{{ Form::submit('UPDATE', array('class'=>'btn btn-default btn-default-small') ) }}
{{ Form::close() }}
现在我想将表单值发送到controler,但是在发送之后我得到了这个错误:
错误:
Missing argument 1 for customersController::postUpdate()
答案 0 :(得分:1)
视图中的表单必须与此代码类似:
{{ Form::model($customers,array('route' => array('customers.update', $customers->id))) }}
并且您的Form::text
必须与:
{{ Form::text('name', $customers->name, array('class'=>'form-control rtl' ) ) }}
路线:
Route::controller(
'customers', 'customersController',
array(
'getIndex' => 'customers.index',
'postUpdate' => 'customers.update'
)
);
现在在控制器中,您可以尝试使用此代码来检测表单是更新还是插入
public function postUpdate()
{
if (Input::get('id')) {
$customer = Customers::find(Input::get('id'));
} else {
$customer = new Customers;
}
...
...
...
}