Laravel по-русски

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

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

#1 Laravel 5.x » Получение значений справочников без создания модели » 16.05.2018 07:45:46

assfaceangel
Ответов: 1

Назрел такой вопрос:
Есть таблица с несколькими полями id, по которым привязаны поля таблиц-справочников.

table1
id|id_dict1

dict1
id|value

есть ли возможность - пользоваться связью между table1 и dict1 по полю id_dict1, не создавая модель для таблицы dict1. Может как-нибудь можно сделать метод в модели table1, который будет возвращать значение value из dict1? Или каким-нибудь иным образом? Просто дело в том, что проект проект не маленький и в таблицах много связанных справочников. А делать модель для каждого справочника не очень хочется

#3 Laravel 5.x » Проблемы с идентификатором вставленной записи » 10.05.2018 08:15:46

assfaceangel
Ответов: 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.
Помогите, плиз, разобраться с этой миситикой. Гугл не помого (

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