Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 10.05.2018 08:15:46

Проблемы с идентификатором вставленной записи

Laravel 5.5, PHP7.0, БД - Pg Sql 9.6

Есть таблица, в нее нужно заносить данные. У таблицы PrimaryKey называется не 'id', а 'guid' типа char, должен включать в себя символы и формируется с использование sequence.
Вот так формируется в БД автозаполнение поля 'guid':

'GUID' || nextval('seq1')

в результате получаем значения типа 'GUID301'

модель :

class soprdoc extends Model
{
    //
    public $timestamps=false;
    public $primaryKey='guid';

    protected $table = 'soprdoc';
    protected $dateFormat = 'Y-m-d';
    protected $fillable =
        [            
            'vid_id',
            'reg_num',
            'reg_date',
            'delo_num',
            'src_ish_num',
            'src_ish_date',
            'who_sluzhba_id',
            'who_organ_id',
            'who_otdel_guid',
            'who_sluzhba_txt',
            'who_sotr_guid',
            'who_sotr_txt'
        ];
}

контроллер :

public function store(Request $request)
{

	    $soprdoc = new soprdoc();

            $soprdoc -> vid_id = $request->vid_id;
            $soprdoc -> reg_num = $request->reg_num;
            $soprdoc -> reg_date = $reg_date;
            $soprdoc -> delo_num = $request->delo_num;
            $soprdoc -> src_ish_num = $request->src_ish_num;
            $soprdoc -> src_ish_date = $src_ish_date;
            $soprdoc -> who_sluzhba_id = $request->who_sluzhba_id;
            $soprdoc -> who_organ_id = $organ_id;
            $soprdoc -> who_otdel_guid = $otdel_guid;
            $soprdoc -> who_sluzhba_txt = $request->who_sluzhba_txt;
            $soprdoc -> who_sotr_guid = $request->who_sotr_guid;
            $soprdoc -> who_sotr_txt = $request->who_sotr_txt;

            $soprdoc -> save();
            $res = $soprdoc -> guid;
            return $res;
}

А теперь, собственно проблема:
функция store() контроллера возвращает 0, но если же мы уберем символы и правила формирования идентификатора и сделаем вот так :

nextval('seq1')

, то никаких проблем нет и функция корректно возвращает значение поля guid.
Помогите, плиз, разобраться с этой миситикой. Гугл не помого (

Не в сети

#2 10.05.2018 10:22:53

Re: Проблемы с идентификатором вставленной записи

проблема решена, ответ найден
https://laracasts.com/discuss/channels/ … h-eloquent
в модели поставил свойство:

protected $keyType='string'

Не в сети

Подвал раздела