我在使用Spatie Media Library软件包设置Laravel时遇到了麻烦。
以下是我得到的错误:
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))
我正在通过Homebrew运行MySQL并停用严格模式。另外我在config / database.php文件中将严格模式设置为false。
控制器| 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();
});
设置
感谢您的帮助!
答案 0 :(得分:0)
一种方法是在Image模型上设置受保护的$ fillable属性(数组)。