2015-10-02 5 views
1

Я впервые окунул пальцы в Laravel PHP, но я попал в проблему, которую я не могу понять. Я продолжаю получать следующие два сообщения об ошибках, когда я пытаюсь отправить информацию через форму (используя фасад формы) в попытке создать новую строку в таблице «файлы».Нарушение ограничения целостности - PHP Laravel MVC 5.0

QueryException в connection.php линии 624: Integrity нарушение ограничения: 19 NOT NULL ограничение не удалось: files.file_description (SQL: вставить в "файлы" ("file_title", "updated_at", "created_at") значения (title test, 2015-10-02 00:18:00, 2015-10-02 00:18:00))

PDOException в строке Connection.php 362: SQLSTATE [23000]: нарушение ограничения целостности : 19 NOT NULL constraint failed: files.file_description (SQL: вставить в «файлы» («file_title», «updated_at», «created_at») значения (tesr, 2015-10-02 00:18:00, 2015-10- 02 00:18:00))

Ниже приводятся мои файлы, относящиеся к этой проблеме. Я заполнил одну строку, используя вояж, и я могу отредактировать эту строку просто в форме. Создание новых строк через форму кажется единственной проблемой. Я просмотрел другие темы по этому вопросу, но я не нашел никаких решений в контексте моей проблемы. Любая помощь будет оценена!

UPDATE 1: мне удалось похудеть ошибки на только нарушение ограничений целостности на величине file_title пути размещения $ временных меток публичных = ложь; в файловую модель согласно предложению. Тем не менее, я все еще пытаюсь исправить нарушение ограничения на значение file_title.

Миграция файла

class CreateFileManagementTables extends Migration 
{ 

public function up() 
{ 

    Schema::create('files', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->string('file_title'); 
     $table->string('file_name'); 
     $table->string('file_description'); 
     $table->string('file_path'); 
     $table->nullableTimestamps(); 
     $table->string('uploader_name'); 
     $table->double('file_size'); 
     $table->string('file_type'); 
    }); 

} 

public function down() 
{ 
    Schema::drop('files'); 
} 
} 

Файлы Модель

class File extends Model { 

// Mass assignment 
protected $fillable = ['file_title', 'file_name', 'file_description', 'file_path', 'uploader_name', 'file_size', 'file_type']; 

} 

Создание функции контроллера

public function create() 
{ 
    return view('files.create'); 
} 

Create View

@extends('app') 

@section('content') 
    <h1>Create a new file</h1> 

    {!! Form::open(['url'=>'files']) !!} 
    @include('files.form', ['submitButtonText'=>'Create file']) 
    {!! Form::close() !!} 
@stop 
+0

Что вы хотите сделать с этим '$ стол-> nullableTimestamps(); '? – aldrin27

+0

На данный момент я планирую, что пользователи загружают файлы, так что здесь можно указать nullableTimestamps, чтобы сервер мог собирать время загрузки. У меня также создается впечатление, что вам нужно указывать только имя временных меток, когда вы хотите ввести даты, введенные пользователем, - не уверен, что это правильно. – Tyrx

+0

По умолчанию это временные метки '$ table-> timestamps();'? – aldrin27

ответ

1

В файле миграции:

public function up() { 

    Schema::create('files', function (Blueprint $table) { 
    $table->increments('id'); 
    $table->string('file_title'); 
    $table->string('file_name'); 
    $table->string('file_description'); 
    $table->string('file_path'); 
    $table->nullableTimestamps(); //set this to default like $table->timestamps(); 
    $table->string('uploader_name'); 
    $table->double('file_size'); 
    $table->string('file_type'); 
}); 
} 

В модели:

class Files extends Model { 

    public $timestamps = false; //to disable the timestamp 
    // Mass assignment 
    protected $fillable = ['file_title', 'file_name', 'file_description', 'file_path', 'uploader_name', 'file_size', 'file_type']; 

} 
+0

. Хорошей новостью является то, что при этом удаляются разделы ошибки, связанной с (SQL: вставлять в значения «файлы» («file_title», «updated_at», «created_at»). Однако у меня все еще есть _QueryException в строке 624 Connection.php: SQLSTATE [23000]: нарушение ограничения целостности: 19 Сбой NOT NULL: files.file_name (SQL: вставить в «файлы» («file_title») значения (ytreytet)) _ в дополнение к PDOException в строке Connection.php 362: SQLSTATE [23000]: Нарушение ограничения целостности: 19 NOT NULL constraint failed: files. file_name – Tyrx

+0

Проверьте переданный параметр, если он передан запросу. – aldrin27

+0

Проверьте, что ваше имя_файла в вашей таблице не отмечено атрибутом Not Null – aldrin27