我有一个带有一个提交按钮的表单,并将操作设置为在控制器中销毁方法。相同的代码适用于其他表单和控制器,但不适用于这个。当我在 Chrome 中检查我的网页时,表单标记中的操作是错误的。
这是我的表格:
{!! Form::model($company, ['method' => 'PATCH', 'action' => ['Setting\Organization\CompaniesController@update', 'files'=>true, $company->CompanyCode]]) !!}
<div class="form-group">
{!! Form::label('CompanyCode', 'Company Code : ', ['class' => 'col-lg-3 col-md-3 col-sm-3 col-xs-3']) !!}
<div class="col-lg-9 col-md-9 col-sm-9 col-xs-9">
{!! Form::text('CompanyCode', null, ['class' => 'form-control', 'readonly' => true]) !!}
</div>
</div>
<div class="col-lg-2 col-md-2 col-sm-2 col-xs-2">
{!! Form::submit('Update Company', ['class' => 'btn btn-primary', 'id' => 'btnSubmit']) !!}
</div>
{!! Form::close() !!}
{!! Form::model($company, ['method' => 'DELETE', 'action' => 'Setting\Organization\CompaniesController@destroy', $company->CompanyCode]) !!}
<div class="col-lg-2 col-md-2 col-sm-2 col-xs-2">
{!! Form::submit('Delete Company', ['class' => 'btn btn-danger']) !!}
</div>
{!! Form::close() !!}
更新按钮工作正常。
我通过 Setting\Organization\CompaniesController 中的编辑方法访问此表单:
public function edit(Company $company){
return view('setting.organization.company.edit', compact('company'));
}
这是 Setting\Organization\CompaniesController 中的 destroy 方法:
public function destroy(Company $company){
dd($company);
//------------ delete company
$company->IsActive = 0;
$company->update();
flash()->info('Company ' . $company->Name . ' has been deleted.');
return redirect('company');
}
该dd($company);
行甚至不起作用,因为表单没有链接到正确的路线。
RouteServiceProvider 文件:
public function boot(Router $router)
{
parent::boot($router);
$router->bind('client', function($id){
return \App\Models\Setting\ClientAccount::getClientFromAccountName($id);
});
$router->bind('company', function($id){
return Company::getCompanyFromCode($id);
});
}
.
.
这是 Form 的检查元素:
<form method="POST" action="http://localhost/hrmsystem/public/company/%7Bcompany%7D" accept-charset="UTF-8" com160202145801="COM160202145801">
<input name="_method" type="hidden" value="DELETE">
<input name="_token" type="hidden" value="B2luMsN5Oy81GUFLoUCoHc2ERnqHe1AYir1DEY4N">
<div class="col-lg-2 col-md-2 col-sm-2 col-xs-2">
<input class="btn btn-danger" type="submit" value="Delete Company">
</div>
</form>
.
.
我提交表格后:
我知道错误是 ModelNotFoundException,因为传递的 CompanyCode 是 %7Bcompany%7D。但我不知道它是从哪里来的。
我Route::resource
在 routes.php 中使用。
请帮忙,我是laravel的新手。