Reputation: 327
My problem seems to be with Laravel helpers. Everything was working fine until I change some files to other folders, of course I changed the routes and on routes and controllers but now I'm getting this message:
ErrorException in HtmlBuilder.php line 65: htmlentities() expects parameter 1 to be string, array given (View: /Library/WebServer/Documents/gamstec/resources/views/posts/create.blade.php)
This is my create file:
<div class="content">
<div class="container-fluid">
<div class="row well bs-component">
<div class="col-md-8 col-md-offset">
<div class="input-group">
<h3 class="text-center">Crear Nueva Publicación</h3>
<hr>
{!! Form::open(array('route' => 'posts.store', 'data-parsley-validate' => '')) !!}
{{ Form::label('title', ' Título:', array('class' => 'fa fa-pencil')) }}
{{ Form::text('title', null, array('class' => 'form-control', 'required' => '', 'maxlength' => '255')) }}
{{ Form::label('body', ' Contenido:', array('class' => 'fa fa-pencil-square-o')) }}
{{ Form::textarea('body', null, array('class' => 'form-control', 'required' => '')) }}
{{ Form::submit('Publicar', array('class' => 'btn btn-info')) }}
</div>
</div> <!-- col-md-8 end -->
<div class="col-md-4">
<div class="input-group">
<h3 class="text-center">Categoría e imágen</h3>
<hr>
<br> <hr>
{{ Form::label('badge', ' Etiqueta:', array('class' => 'fa fa-tags')) }}
{{ Form::text('badge', array('class' => 'form-control', 'maxlength' => '20')) }}
<br> <hr>
{{ Form::label('postimg', ' Seleccionar Imagen', array('class' => 'fa fa-picture-o')) }}
<br> <br>
{{ Form::file('postimg', array('require' => '', 'maxlength' => '255')) }}
{!! Form::close() !!}
</div> <!-- item-group end -->
</div> <!-- col-md-4 end -->
</div> <!-- end of row -->
</div> <!-- end of container -->
</div> <!-- end of content -->
This is my controller file:
<?php
public function index()
{
return view('admin');
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('posts.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
// validate the data
$this->validate($request, array(
'title' => 'required|max:255',
'body' => 'required',
));
// store in database
$post = new Post;
$post->title = $request->title;
$post->body = $request->body;
$post->badge = $request->badge;
$post->postimg = $request->postimg;
$post->save();
Session::flash('success', 'La publicación se ha creado correctamente');
// redirect to another page
return redirect()->route('show', $post->id);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$post = Post::find($id);
return view('show')->withPost($post);
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
I'll be grateful for your help.
Upvotes: 1
Views: 2803
Reputation: 249
It's this line in your code:
{{ Form::text('badge', array('class' => 'form-control', 'maxlength' => '20')) }}
It needs null as the second value:
{{ Form::text('badge', null, array('class' => 'form-control', 'maxlength' => '20')) }}
Upvotes: 0
Reputation: 609
That's line generate the error:
{{ Form::text('badge', array('class' => 'form-control', 'maxlength' => '20')) }}
You can pass an additional value option as a second argument can't be an array
To add other attributes, pass a third argument to the method. This third argument must be an array.
Change to this :
{{ Form::text('badge', '', array('class' => 'form-control', 'maxlength' => '20')) }}
Upvotes: 2