我在这里已经在Laravel中构建了一个基本应用程序 - 但是我有两个模型,即文章和照片模型。一篇文章可以有很多照片,因此我设置了我的表单,以便您可以通过javascript动态添加多个文件输入。这里的问题是,如果没有验证错误,表单只会膨胀 - 但是如果存在验证错误 - 我会收到这条可怕的错误消息,说明
htmlentities() expects parameter 1 to be string, array given (View: D:\wamp\www\one1\one1info-revamped\app\views\administration\articles\create.blade.php)
以下是控制器中我的商店方法的代码:
public function store()
{
$input = Input::except('photos', 'captions');
$validation = Validator::make($input, Article::$rules);
$photos = Input::file('photos');
$captions = Input::file('captions');
if ($validation->passes() ){
$article = $this->article->create($input);
foreach($photos as $ii => $one_photo){
$photo = new Photo();
$name = $article->title . '-' . $ii;
$photo->create_n_upload($one_photo, array( 'name'=>$name,
'caption'=>$captions[$ii],
'imageable_type'=>'Article',
'imageable_id'=>$article->id ));
}
return Redirect::route('admin.articles.index');
}
return Redirect::route('admin.articles.create')
->withInput()->withErrors($validation);
}
我真的不知道我在哪里弄错了 - 这里也是我的文章模型:
class Article extends Eloquent {
protected $guarded = array();
public function photos()
{
return $this->morphMany('Photo', 'imageable');
}
public static $rules = array(
'title' => 'required',
'author' => 'required',
'caption' => 'required',
'body' => 'required',
'section_id'=>'required',
'dated'=>'',
'is_published' => 'required',
'created_by' => ''
);
}
你可以看到我还没有为图像添加任何规则 - 但只是在表单中包含它们已经开始导致此错误。它只会在验证失败时发生 - 如果所有内容都按要求输入 - 它会顺利进行但是我需要确保错误处理在这里工作正常。
以下是我的表单上的上传文件:
<li>
{{ Form::label('images', 'Images:') }}
<a href="javascript:void(0)" id="link-add-image" class="btn btn-small">ADD IMAGE</a>
<div class="clearfix"></div>
<ul id="image-upload-holder">
<li>
<div class="well">
<input name="photos[]" type="file" />
{{ Form::text('captions[]') }}
<a href="javascript:void(0)" class="btn btn-small lnk-remove-image"><i class="icon-cross"/></a>
</div>
</li>
</ul>
</li>