Как я могу установить значение первичного ключа вручную в LaravelPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как я могу установить значение первичного ключа вручную в Laravel

Сообщение Anonymous »

Я пытаюсь установить значение первичного ключа вручную в Laravel 5.6, но при сохранении записи возвращается 0.
Вот мой код функции контроллера.

Код: Выделить всё

   $next = collect(DB::select('SELECT IFNULL(MAX(IFNULL(lvl1,0)),0)+10 AS NEXTVAL FROM coa_lvl1'))->first()->NEXTVAL;

$lvl1_id = new CoaLvl1();
$lvl1_id->lvl1 = $next;
$this->lvl1->create(array_merge($request->all(),['lvl1' => $next , 'lvl1_code' => $request->get('group_id').'/'.$next]));
Миграция для coa_lvl1:

Код: Выделить всё

    Schema::create('coa_lvl1', function (Blueprint $table) {
$table->tinyInteger('group_id');
$table->integer('lvl1')->unsigned();
$table->tinyInteger('lvl1_code');
$table->string('lvl1_name',300);
$table->integer('created_by')->nullable(false);
$table->timestamp('created_date')->default(DB::raw('CURRENT_TIMESTAMP'));
$table->integer('last_update_by');
$table->timestamp('last_update_date')->default(DB::raw('0 ON UPDATE CURRENT_TIMESTAMP'));
$table->string('active_flag',1)->default('1');
$table->primary('lvl1');
$table->foreign('group_id')
->references('group_id')
->on('coa_group')
->onDelete('cascade');
});
И в моей модели

Код: Выделить всё

  protected $table = 'coa_lvl1';

protected $primaryKey = 'lvl1';

public $incrementing = false;

protected $blameable  = array('created','updated');

protected $fillable = ['group_id','lvl1_code','lvl1_name','active_flag'];

public $timestamps = false;

public function coaGroup()
{
return $this->belongsTo(CoaGroup::class, 'group_id');
}

public function coaLvl1()
{
return $this->hasMany(CoaLvl2::class,'lvl1');
}
$next — это мое значение PrimaryKey, которое я пытаюсь установить

Подробнее здесь: https://stackoverflow.com/questions/544 ... in-laravel
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»