Laravel Stati c Создание методов для вставки записи, возвращающего нулевой идентификатор - PullRequest
0 голосов
/ 26 апреля 2020

Я работаю с Laravel 7 и тинкером cli

Я хочу вставить запись в таблицу профиля с помощью метода stati c create, но он возвращает нулевое значение столбца id, а не значение, предоставленное мной но автоматически увеличивается в базе данных. На следующем рисунке я сделал массив -> затем передал его для создания метода -> запись вставлена, но столбец идентификатора недоступен

Insertion done using tinker cli

Я изменил первичный ключ по умолчанию 'id' для laravel 7 на имя пользователя , без изменения первичного ключа метод create () возвращает правильное значение. Скажите, пожалуйста, как это будет дать значение id в моем случае, используя имя пользователя в качестве первичного ключа

Record inserted with id value but returns null how access it

Запись вставлена ​​со значением id, но возвращает null, как получить к нему доступ после вставки используя метод create ()

Миграция профиля


<?php

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

class CreateProfilesTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('profiles', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('username');
            $table->timestamps();
        });
    }

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

Модель профиля


<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Profile extends Model
{
    protected $guarded =[];

    protected $primaryKey='username';
    protected  $keyType='string';
    public $incrementing=false;
}
...