SQLSTATE [23000]:完整性约束违规:1048列“图像”不能为空 - Laravel

时间:2017-08-07 05:31:25

标签: php mysql laravel laravel-5.4

我在stackoverflow中的第一个问题,我在我的数据库中插入“image”字段时遇到问题,尝试修改我的php.ini的'max_input_vars',但它不起作用。我留下我的代码,看看你是否有另一个意见:

我的模特:

class Photo extends Model
{
/**
 * The database table used by the model.
 *
 * @var string
 */
protected $table = 'photos_album';

public static function galleries($id)
{
    $galleries = \DB::table('photos_album')
                  ->select('photos_album.photo', 'photos_album.id',
                           \DB::raw("DATE_FORMAT(album.created_at, '%m_%Y') AS 
creacion")
                  )
                  ->join('album', 'photos_album.album_id', '=', 'album.id')
                  ->where('album.id', $id)
                  ->get();

    return $galleries;
}


public static function galleryDetail($id)
{
    $gallery = \DB::table('photos_album')
                ->select('photos_album.photo', 'photos_album.id',
                         \DB::raw("DATE_FORMAT(album.created_at, '%m_%Y') AS 
creacion")
                )
                ->join('album', 'photos_album.album_id', '=', 'album.id')
                ->where('photos_album.id', $id)
                ->first();

     return $gallery;
   }
 }

myController的:

public function store(Request $request)
   {
    $messages = [
        'title.required'              => 'El campo título es obligatorio.',
        'document_name.required'      => 'La imagen es obligatoria.'
    ];

    $validator = Validator::make($request->all(), [
        'title'              => 'required',
        'document_name'      => 'required'
    ], $messages);

    if ($validator->fails()) {
        return redirect('gallery/create')
                    ->withErrors($validator)
                    ->withInput();
    }

    $gallery  = $request->all();

    try {
        \DB::transaction(function() use ($gallery) {

            $row = new Album;
            $row->title            = $gallery['title'];
            $row->image            = $gallery['document_name'];
            $row->status           = $gallery['status'];
            $row->save();

            $gallery_id = $row->id;

            \Session::flash('gallery_id', $gallery_id);

        });

    } catch (\ErrorException $e) {
        \Session::flash('add_errors','error');
        return redirect('/gallery/create')->with('add_errors', true);
    }

    return redirect('/gallery/' . \Session::get('gallery_id') . '/photos')-
>with('status', 'Galería creada con éxito!');
}

使用Javascript:

 function upload_image_album(idImage, date)
  {
   var formData = new FormData($(".form-horizontal")[0]);
   var inputFile = document.getElementById(idImage);
   var file = inputFile.files[0];
   formData.append('documentation', file);
   formData.append('type', idImage);
   formData.append('_token', token_);
   formData.append('date', date);

if (file != undefined) {
    //hacemos la petición ajax
    $.ajax({
        url: '/image/upload/album',
        type: 'POST',
        // Form data
        //datos del formulario
        data: formData,
        //necesario para subir archivos via ajax
        cache: false,
        contentType: false,
        processData: false,
        dataType: "json",
        //mientras enviamos el archivo
        beforeSend: function(){
            $("#upload_" + idImage).show();
            $("#upload_" + idImage).html('Validando el archivo... <i class="fa 
   fa-refresh fa-spin fa-2x"></i>');
        },
        //una vez finalizado correctamente
        success: function(data){
            if (data.exito) {
                $("#upload_" + idImage).html('El archivo se subio 
 correctamente');
                $("#" + idImage + "_name").val(data.file);
                $("#" + idImage + "_campo").hide();
                $("#" + idImage + "_descripcion").hide();
            } else {
                $("#upload_" + idImage).html('El archivo no es valido');
            }
            $("#" + idImage).val('');
        },
        //si ha ocurrido un error
        error: function(){
            console.log("error");
            $("#upload_" + idImage).html('El archivo no es valido');
        }
    });
   }
  }

我正在使用虚拟主机进行本地环境,我正在使用MySQL 5.7.18,也在本地。谢谢朋友们!

1 个答案:

答案 0 :(得分:0)

首先,查看图像是否正在发送到控制器。试试dd($ request-&gt; all);