Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
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.
Помогите, плиз, разобраться с этой миситикой. Гугл не помого (
Не в сети
проблема решена, ответ найден
https://laracasts.com/discuss/channels/ … h-eloquent
в модели поставил свойство:
protected $keyType='string'
Не в сети
Страницы 1