0

我在里面开发了一个 APIATO 项目,我想执行 CRUD 操作,为此我创建了一个名为 upload 的函数,该函数负责发布详细信息,并通过将凭据传递给 .env 文件与我的数据库集成,当我尝试在邮递员中发送请求时我收到以下错误

Illuminate\Database\QueryException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'name' cannot be null (SQL: insert into `blogs_table` (`name`, `price`, `image`, `rating`, `country`, `description`, `user_id`, `updated_at`, `created_at`) values (?, ?, ?, ?, ?, ?, ?, 2021-08-08 17:06:53, 2021-08-08 17:06:53)) in file /home/vagrant/code/apiato/vendor/laravel/framework/src/Illuminate/Database/Connection.php on line 692

我没有得到如何解决此错误,请帮助我解决此问题...

BlogContoller.php

<?php

namespace App\Containers\UserRegistration\UserContainer\UI\API\Controllers;

use App\Containers\UserRegistration\UserContainer\UI\API\Requests\CreateUserContainerRequest;
use App\Containers\UserRegistration\UserContainer\UI\API\Requests\DeleteUserContainerRequest;
use App\Containers\UserRegistration\UserContainer\UI\API\Requests\GetAllUserContainersRequest;
use App\Containers\UserRegistration\UserContainer\UI\API\Requests\FindUserContainerByIdRequest;
use App\Containers\UserRegistration\UserContainer\UI\API\Requests\UpdateUserContainerRequest;
use App\Containers\UserRegistration\UserContainer\UI\API\Transformers\UserContainerTransformer;
use App\Containers\UserRegistration\UserContainer\Actions\CreateUserContainerAction;
use App\Containers\UserRegistration\UserContainer\Actions\FindUserContainerByIdAction;
use App\Containers\UserRegistration\UserContainer\Actions\GetAllUserContainersAction;
use App\Containers\UserRegistration\UserContainer\Actions\UpdateUserContainerAction;
use App\Containers\UserRegistration\UserContainer\Actions\DeleteUserContainerAction;
use App\Ship\Parents\Controllers\ApiController;
use Illuminate\Http\JsonResponse;
// use Illuminate\Support\Facades\Request;
use Illuminate\Http\Request;
use App\Containers\UserRegistration\UserContainer\Models\BlogModel;

class BlogController extends ApiController
{
    public function upload(Request $request ){
        //dd($request->all());
        $blog = new BlogModel();
        $blog->name=$request->input('name');
        $blog->price=$request->input('price');
        $blog->image=$request->input('image');
        $blog->rating=$request->input('rating');
        $blog->country=$request->input('country');
        $blog->description=$request->input('description');
        $blog->user_id = auth()->id();     
        $blog->save();
        return response()->json(['blogs'=>$blog]);
    }
}

BlogModel.php

<?php

namespace App\Containers\UserRegistration\UserContainer\Models;

use App\Ship\Parents\Models\Model;

class BlogModel extends Model
{
    protected $table='blogs_table';
    protected $fillable = [
        'name','price','image','country','rating','description'
    ];

    protected $attributes = [

    ];

    protected $hidden = [

    ];

    protected $casts = [

    ];

    protected $dates = [
        'created_at',
        'updated_at',
    ];

    /**
     * A resource key to be used in the serialized responses.
     */
    protected string $resourceKey = 'BlogModel';
    public function user(){
        return $this->belongsTo(UserContainer::class);
    }
}

Migration table

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;

class CreateBlogsTable extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('blogs_table', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('price');
            $table->string('country');
            $table->string('description');
            $table->integer('rating');
            $table->string('image');
            $table->unsignedInteger('user_id');
            $table->foreign('user_id')->references('id')->on('user_containers');
            $table->timestamps();
            //$table->softDeletes();
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('blogs_table');
    }
}

4

1 回答 1

3

$request->input('name')在 BlogContoller.php 中为空。您可以nullable()在迁移中为name列添加方法,如下所示。

$table->string('name')->nullable();
于 2021-08-08T19:55:23.827 回答