У меня проблемы с настройкой Laravel с пакетом Spatie Media Library.
Вот ошибка, которую я получаю:
SQLSTATE[HY000]: General error: 1364 Field 'model_type' doesn't have a default value (SQL: insert into `images` (`updated_at`, `created_at`) values (2018-04-05 10:38:39, 2018-04-05 10:38:39))
Я использую MySQL через Homebrew и отключил строгий режим. Также я установил строгий режим на false в файле config / database.php.
Контроллер | ImageController.php
<?php
namespace App\Http\Controllers;
use App\Image;
use Illuminate\Http\Request;
class ImageController extends Controller
{
public function addBackgroundImage(Request $request)
{
Image::create()
->addMediaFromRequest('background')
->toMediaCollection('backgrounds')
->save();
return redirect('/settings')->with('success', 'Hintergrund Bild hinzugefügt');
}
}
Модель | image.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Spatie\MediaLibrary\HasMedia\HasMediaTrait;
use Spatie\MediaLibrary\HasMedia\HasMedia;
class Image extends Model implements HasMedia
{
use HasMediaTrait;
}
Посмотреть | settings.blade.php
{!! Form::open(['action' => 'ImageController@addBackgroundImage', 'method' => 'POST', 'files' => true]) !!}
<div class="file-field input-field">
<div class="btn">
<span>Background</span>
{{Form::input('file', 'background')}}
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text">
</div>
</div>
<button class="btn waves-effect waves-light" type="submit" >Speichern
<i class="material-icons right">send</i>
</button>
{!! Form::close() !!}
Маршруты | web.php
Route::post('/settings', 'ImageController@addBackgroundImage')->name('background.store');
миграция
Schema::create('images', function (Blueprint $table) {
$table->increments('id');
$table->morphs('model');
$table->string('collection_name');
$table->string('name');
$table->string('file_name');
$table->string('mime_type')->nullable();
$table->string('disk');
$table->unsignedInteger('size');
$table->json('manipulations');
$table->json('custom_properties');
$table->json('responsive_images');
$table->unsignedInteger('order_column')->nullable();
$table->nullableTimestamps();
});
Настроить
Спасибо за любую помощь!
Задача ещё не решена.
Других решений пока нет …