序列化'关闭'是不允许的 - laravel

时间:2014-05-04 01:13:51

标签: php mysql laravel laravel-4

我试图在我的桌子上创建一个元组。数据来自表格或收到。 我的数据库: enter image description here

查看

@extends('plantilla')
@section('contenido')
<div class="formulario">
{{Form::open(array('url' => 'servicio/create', 'files' => true))}}

    <input type="text" class="form-control"  id="direccion" name="dirrecion" placeholder="Dirección" >
    <input type="text" class="form-control"  id="cliente" name="cliente" placeholder="Nombre Cliente" >
    <input type="time" name='horainicio' id='horainicio' min='time' max='time' >
    {{Form::file('pdf', array('title' => 'Search for a file to add'))}}
    {{Form::select('idtecnico', $tecnico_selector)}}
    {{ Form::submit('Guardar', array('class' => 'btn btn-primary ')) }} 
{{Form::close()}}
    </div>  
    @stop

路线

Route::get('servicio/create', function(){
$tecnicos = Tecnico::all();
    $tecnico_selector = array();
    foreach ($tecnicos as $tecnico) {
        $tecnico_selector[$tecnico->idTecnico] = $tecnico->Nombre;
    }
    return View::make('formservicio', array('tecnico_selector' => $tecnico_selector));
 });
 Route::post('servicio/create', array('uses' => 'ServicioController@doCreate'));

模型

class Servicio extends Eloquent{
protected $table = 'Servicio';
protected $primaryKey = 'idServicio';
protected $fillable = array(
                            'Direccion',
                            'RutaPDF',
                            'Completado'
                            );
public function materialUsado(){
    return $this->hasMany('Material_Usado', 'idMaterial_Usado');
}

public function tecnicos(){
    return $this->belongsToMany('Tecnico', 'Servicio_Tecnico', 'Servicio_idServicio', 'Tecnico_idTecnico');
}
    }

控制器

class ServicioController extends BaseController{
public function doCreate(){
    $rules = array(
                'idtecnico' => 'required',
                'direccion' => 'required',
                'cliente' => 'required'
                );
    $validator = Validator:: make(Input::all(), $rules);

    if($validator->fails()){
        return Redirect::to('servicio/create')
                ->withErros($validator)
                ->withInput();
    }else{
        $input = array(
                'Direccion' => Input::get('direccion'),
                'Cliente' => Input::get('cliente'),
                'Completado' => '0'
                );

        Servicio::create($input);
        /*$servicio = new Servicio;
        $servicio->Direccion = Input::get('direccion');
        $servicio->Cliente = Input::get('cliente');
        $servicio->Completado = '0';
        $servicio->tecnicos->attach($idtecnico);
        $servicio->save();*/

        $path = public_path().'/servicio/'.$servicio->idServicio;
        File::makeDirectory($path, $mode = 0777, true, true); // creamos la carpeta
        $archivoPdf = Input::file('pdf');
        $archivoPdf->move($path, 'servicio');

        /*$servicio->RutaPDF = $path.'/servicio';
        $servicio->save();*/







    }
}
}

完全更改表单并发送后,出现以下错误

enter image description here

我该如何解决?

2 个答案:

答案 0 :(得分:10)

您的控制器中有拼写错误:->withErros($validator) - 它应该是withErrors。差异很大。

Laravel将withErros($validator)转换为with(['erros' => $validator]),这意味着尝试将整个验证程序对象放入会话中。要将事物放入会话存储器中,需要先将其序列化,这就是导致错误的原因。

答案 1 :(得分:2)

我有类似的问题:

问题是:

  • 我正在验证输入不存在。
  • 列(数据库)的名称与输入名称
  • 不相似
  • 列(数据库)不为空