首页 > 解决方案 > 将值发布到数据库 laravel

问题描述

我正在尝试向我的缩略图添加描述,但它不会在我的数据库中更新。

你们能看出为什么吗?

唯一thumb_description不会更新的。

填充物已填充。当我这样做$content->save()时,它将返回 true。

控制器:

public function detail(Request $request, $id)
    {
        $content = Content_blocks::find($id);

        if ($request->isMethod('post')) {
            if ($request->hasFile('image')) {
                $folder = 'uploads';
                $name = $request->image->getClientOriginalName();
                $store = $request->image->store($folder, 'public');
                $file = pathinfo(Storage::url($store));
                $thumb_description = $request->input('thumb_description');

                $thumbnail = new Thumbnail();
                $thumbnail->name = $file['filename'];
                $thumbnail->extenstion = $file['extension'];
                $thumbnail->path = $folder;
                $thumbnail->thumb_description = $thumb_description;
                $thumbnail->save();
                $content->thumbnail_id = $thumbnail->id;

            }

            $content->title = $request->input('title');
            $content->description = $request->input('description');
            $content->link = $request->input('link');
            $content->linkname = $request->input('linkname');
            $content->order = $request->input('order');
            $content->contentcategory_id = $request->input('categorie');
            $content->thumbnail->thumb_description = $request->input('thumb_description');


            if ($request->input('ontkoppel') === 'deletion') {
                Thumbnail::find($content->thumbnail_id)->delete();
            }

            // dd($content->thumbnail->thumb_description);
            $content->save();


            return redirect('admin/content/webcategorie/homepage/contentblocks/' . $content->content_id);
        }

模型

<?php

namespace App\Models;

use Illuminate\Support\Facades\Storage;

class Thumbnail extends Model
{

    protected $fillable = [
        "thumb_description",
        "name",
        "path",
        "extenstion"
    ];
    protected $table = 'thumbnail';

    public function content()
    {
        return $this->belongsTo(Content::class);
    }

    public static function getFile($id)
    {
        $thumbnail = self::find($id);

        if ($thumbnail === null) {
            return null;
        }

        $url = sprintf('%s/%s.%s', $thumbnail->path, $thumbnail->name, $thumbnail->extenstion);

        return Storage::disk('public')->url($url);
    }
    public static function getDescription($id)
    {
        $thumbnail = self::find($id);

        if ($thumbnail === null) {
            return null;
        }

        $description = $thumbnail->thumb_description;

        return $description;
    }
}

移民

   */
public function up()
{
    Schema::create('thumbnail', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name', 255);
        $table->string('path', 150);
        $table->string('extenstion', 10);
        $table->text('thumb_description');
        $table->timestamps();
    });
}

发表在 chrome 开发工具中

------WebKitFormBoundaryfun4SMk5TA604OZE

内容处置:表单数据;名称="thumb_description"

布鲁扬加

标签: phplaravelmodelcontroller

解决方案


$content->save();只会保存属性$content而不是其关系。

试试$content->push();哪个应该通过加载的关系级联并保存所有相关的模型。

https://laravel.com/api/5.6/Illuminate/Database/Eloquent/Model.html#method_push


推荐阅读