Validation 允许使用FormRequest和unique在Laravel中保存现有条目 name!!} {!!Form::model($publisher,['method'=>'PATCH','action'=>['PublishersController@update“,$publisher->slug]]) {!!Form::label('name','Nom de l\'deéditeur') {!!Form::text('name',null,['placeholder'=>'Nom de l\'deéditeur']) {!!表单::提交('ajournéditeur',['class'=>'按钮展开']) {!!Form::close()!!} @停止
我已在表单中写入请求,希望Validation 允许使用FormRequest和unique在Laravel中保存现有条目 name!!} {!!Form::model($publisher,['method'=>'PATCH','action'=>['PublishersController@update“,$publisher->slug]]) {!!Form::label('name','Nom de l\'deéditeur') {!!Form::text('name',null,['placeholder'=>'Nom de l\'deéditeur']) {!!表单::提交('ajournéditeur',['class'=>'按钮展开']) {!!Form::close()!!} @停止,validation,laravel,laravel-5.1,Validation,Laravel,Laravel 5.1,我已在表单中写入请求,希望名称唯一。它工作得非常完美,但是当我编辑一个现有条目时,我不能再保存它了,它已经存在了。。。当然了,因为我正在编辑它 我在阅读文档时发现了解决方案,但不幸的是,它不起作用。这是我的密码: 路线: Route::resource('editeurs', 'PublishersController'); 控制器: class PublishersController extends Controller { /* Update an existing publis
名称
唯一。它工作得非常完美,但是当我编辑一个现有条目时,我不能再保存它了,它已经存在了。。。当然了,因为我正在编辑它
我在阅读文档时发现了解决方案,但不幸的是,它不起作用。这是我的密码:
路线:
Route::resource('editeurs', 'PublishersController');
控制器:
class PublishersController extends Controller
{
/* Update an existing publisher */
public function update($slug, PublisherRequest $request)
{
$publisher = Publisher::where('slug', $slug)->firstOrFail();
$input = $request->all();
$publisher->name = $input['name'];
$publisher->slug = my_slug($input['name']);
$publisher->save();
return redirect()->action('PublishersController@show', $publisher->slug);
}
}
申请表格:
class PublisherRequest extends Request
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required|unique:publishers,name,'.?????
];
}
}
如果需要,视图:
@section('content')
<div class="row">
<h1 class="large-12 columns">Edition - {!! $publisher->name !!}</h1>
{!! Form::model($publisher, ['method' => 'PATCH', 'action' => ['PublishersController@update', $publisher->slug]]) !!}
<div class="large-12 columns">
{!! Form::label('name', 'Nom de l\'éditeur') !!}
{!! Form::text('name', null, ['placeholder' => 'Nom de l\'éditeur']) !!}
</div>
<div class="large-12 columns">
{!! Form::submit('Ajouter un éditeur', ['class' => 'button expand']) !!}
</div>
{!! Form::close() !!}
</div>
@stop
@节(“内容”)
版本-{!!$publisher->name!!}
{!!Form::model($publisher,['method'=>'PATCH','action'=>['PublishersController@update“,$publisher->slug]])
{!!Form::label('name','Nom de l\'deéditeur')
{!!Form::text('name',null,['placeholder'=>'Nom de l\'deéditeur'])
{!!表单::提交('ajournéditeur',['class'=>'按钮展开'])
{!!Form::close()!!}
@停止
我的代码有什么问题吗?下面是我的做法:
class PublishersController extends Controller
{
/* Update an existing publisher */
public function update($slug, PublisherRequest $request)
{
$publisher = Publisher::where('slug', $slug)->firstOrFail();
$this->validate($request, ['name' =>'required|unique:publishers,name,'.$publisher->id]);
$publisher->name = $request->input('name');
$publisher->slug = my_slug($publisher->name);
$publisher->save();
return redirect()->action('PublishersController@show', $publisher->slug);
}
}
我会这样做:
class PublishersController extends Controller
{
/* Update an existing publisher */
public function update($slug, PublisherRequest $request)
{
$publisher = Publisher::where('slug', $slug)->firstOrFail();
$this->validate($request, ['name' =>'required|unique:publishers,name,'.$publisher->id]);
$publisher->name = $request->input('name');
$publisher->slug = my_slug($publisher->name);
$publisher->save();
return redirect()->action('PublishersController@show', $publisher->slug);
}
}
好的,我找到了解决办法。我需要通过我目前出版商的审查
public function rules()
{
$publisher = Publisher::where('slug', $this->editeurs)->first();
return [
'name' => 'required|unique:publishers,name,'.$publisher->id
];
}
这很有效。好的,我找到了解决方案。我需要通过我目前出版商的审查
public function rules()
{
$publisher = Publisher::where('slug', $this->editeurs)->first();
return [
'name' => 'required|unique:publishers,name,'.$publisher->id
];
}
这是有效的。您的表单请求代码看起来很好,应该可以正常工作。提交时您是否被重定向回
users/{id}/edit
处的表单,并且会话中存在错误('errors')
?是的,我被重定向到表单,它显示错误:名称已存在
我假设您100%确定没有其他条目具有该名称。尝试使用$this->id
(由Laravel实现)而不是$this->get('id')
(由Symfony实现),也许这会有所不同(这应该不会)。是的,只有一个Test4(这是我的测试条目),因为在我的数据库中,我不允许有多个名称。我添加了$this->id
,但仍然有错误消息:名称已被取下。
您的表单请求代码看起来不错,应该可以正常工作。提交时您是否被重定向回users/{id}/edit
处的表单,并且会话中存在错误('errors')
?是的,我被重定向到表单,它显示错误:名称已存在
我假设您100%确定没有其他条目具有该名称。尝试使用$this->id
(由Laravel实现)而不是$this->get('id')
(由Symfony实现),也许这会有所不同(这应该不会)。是的,只有一个Test4(这是我的测试条目),因为在我的数据库中,我不允许有多个名称。我添加了$this->id
,但仍有错误消息:名称已被取下。
是,但我想将验证与控制器分开。我假设创建FormRequest是为了执行各种验证,包括这个验证。问题是,它出现在正式的Laravel文档中……是的,但我想将验证与控制器分开。我假设创建FormRequest是为了执行各种验证,包括这个验证。问题是,它出现在官方的拉威尔文件中。。。