php - 不允许序列化 'Closure' - laravel

标签 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');
}
    }

Controller

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

我该如何解决?

最佳答案

你的 Controller 中有一个拼写错误:->withErros($validator) - 它应该是 withErrors。区别很大。

Laravel 将withErros($validator) 转换为with(['erros' => $validator]),意思是试图将整个validator 对象放到session 中.要将东西放入 session 存储中,需要先将其序列化,这就是导致错误的原因。

关于php - 不允许序列化 'Closure' - laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23451535/

相关文章:

php - Laravel:是否可以记录每个请求的堆栈跟踪?

php - 使用 Laravel 5.5 从 Bootstrap 3.3.7 迁移到 4.0

mysql - 如何连接具有不同表和不同列名的多个查询

MYSQL:从表A中选择,基于在表B中看到的用户日期

php - 无法配置 Symfony(第 3 方)包

php - Laravel 5 嵌套关系与条件

mysql - 如何优化需要查找要连接的列的两个表的 JOIN?

php - Kubernetes 集群中的 Laravel ENV 变量冲突

php - 如何设置 HTML 文件字段的值?

PHP:为什么我的 count() 不是?打印出我的数组?