Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数据库选择/下拉菜单(格式)的验证程序规则laravel 4.1_Php_Select_Drop Down Menu_Laravel 4_Validation - Fatal编程技术网

Php 数据库选择/下拉菜单(格式)的验证程序规则laravel 4.1

Php 数据库选择/下拉菜单(格式)的验证程序规则laravel 4.1,php,select,drop-down-menu,laravel-4,validation,Php,Select,Drop Down Menu,Laravel 4,Validation,我对拉威尔和我的状态有问题 在我的表单createBand.blade.php中,我用一个下拉列表创建了一个表单,该列表称为数据库表:MusicalGene 应该注意的是,下拉菜单/列表选择表单调用数据库中另一个名为MusicalGene的表,我希望下拉列表中的表单是在数据库表Bands中注册一个乐队 选择表格工作,我可以在种子设定后,在下拉列表中选择表格中所有音乐流派的名称。这是我打开、关闭表单和类似laravel的部分所需的刀片页面代码: <p> {{Form::

我对拉威尔和我的状态有问题

在我的表单createBand.blade.php中,我用一个下拉列表创建了一个表单,该列表称为数据库表:MusicalGene

应该注意的是,下拉菜单/列表选择表单调用数据库中另一个名为MusicalGene的表,我希望下拉列表中的表单是在数据库表Bands中注册一个乐队

选择表格工作,我可以在种子设定后,在下拉列表中选择表格中所有音乐流派的名称。这是我打开、关闭表单和类似laravel的部分所需的刀片页面代码:

    <p>
    {{Form::label('name','Name of the Band: ')}}
    {{Form::text('name',Input::old('name'))}}
</p>
@if ($errors->has('name'))
<p class='error'> {{ $errors->first('name')}}</p>
@endif
<br>
<br>

<p>
    {{Form::label('email','Band Email: ')}}
    {{Form::text('email',Input::old('email'))}}
</p>
@if ($errors->has('email'))
<p class='error'> {{ $errors->first('email')}}</p>
@endif
<br>
<br>

<p>
    {{Form::label('musicalGenre','your style: ')}}
    {{Form::select('musicalGenre_name', $genre_options = array('' => 'select your style') + musicalGenre::lists('name'), Input::old('musicalGenre_name')) }}
</p>
@if ($errors->has('musicalGenre'))
<p class='error'> {{ $errors->first('musicalGenre_name')}}</p>
@endif
<br>
<br>
别在意名字,我是法国人,为了让你清楚,我更改了名字,我确信是我的dropdownlist的验证器在我填写表格时出了问题,因为我无法通过它。在我最初的项目代码中,没有拼写错误

我所有的验证器和变量名都可以工作。我想我需要为选择表单输入和验证器找到正确的规则,以便laravel知道我在dropdownlist中选择时做了选择

起初,我想指定dropdownlist使用数据库表musicalGenre。如我所指定的,某些字段位于数据库表带区中,如下所示:

'name' => 'required|between:1,64|unique:bands,name'
这里,name是数据库表的一个字段。但它也不起作用

如果有人有解决方案或想帮忙,我很感兴趣。
如果我的英语这么差,谢谢你,很抱歉。

是否存在:MusicalGene而不是:MusicalGene帮助?

中的验证规则:on The field MusicalGene将无法按照你实现它的方式工作。它需要一个逗号分隔的字符串列表,字段值将被清除

例如,如果字段为“性别”,则验证为:

'gender' => 'in:male,female'
要根据模型验证音乐流派,您需要编写自定义验证程序。看

我目前正在为这个“属于”验证编写一个自定义验证程序,当它工作时,我会将它发布在这里

更新

我已经编写了一个自定义验证规则,应该会有所帮助。首先创建validators.php文件并将其包含在global.php中

在validators.php中创建自定义规则:

Validator::extend('exists_in', function($attribute, $value, $parameters)
{
  $result = $parameters[0]::find($value);
  return ($result == null) ? FALSE : TRUE;
});
在验证中,您现在可以拥有:

'musicalGenre' => 'integer|required|exists_in:musicalGenre'
验证中的exists_采用模型类名的参数

要向该验证发送错误消息,请将以下内容添加到app/lang/en/validation.php中的数组中:


在您的代码中,选择的名称是MusicalGene_名称,但您正在检查规则中的名称。“你试过改变这个吗?”AntoineAugusti。事实上,“我的规则”中的名称是另一个标签和表单中未出现的另一个验证器的标注栏规则的名称。为了让你理解,我改变/修正了它。所以问题并不是从那里来的。谢谢。不,它不会改变任何事情,我无法通过验证程序。@david谢谢你一个ot,我也会寻找解决方案。当我找到东西的时候,我会把它贴在这里。我想你是想感谢@joeturner。我只是编辑了回复。@joeturner它对你有用吗?我尝试了你的方法,就像你告诉我的那样,但是没有用。@Julien我刚刚又看了一遍你的代码,看起来你还没有找到流派的ID来设置选择中的值。尝试{{Form::select'musicalGenre_name',$genre_options=array=>'选择你的风格'+musicalGenre::列出'name','id',Input::old'musicalGenre_name'}}@Julien,当你说它不起作用时。会发生什么?你有错误吗?
Validator::extend('exists_in', function($attribute, $value, $parameters)
{
  $result = $parameters[0]::find($value);
  return ($result == null) ? FALSE : TRUE;
});
'musicalGenre' => 'integer|required|exists_in:musicalGenre'
"exists_in" => "The selected :attribute is invalid."