Size: a a a

Laravel для начинающих

2020 February 19

AH

Andrey Helldar in Laravel для начинающих
Ilshat Gayanov
он ругается из-за плохого composer.json?
https://paste.laravel.io/71afde7c-7454-4a8f-a694-59fdd990d719
Нет. laravel/installer требует symfony/console версии 4 и выше, а у тебя установлена 3-я.

Сделай composer global update и после этого composer global require laravel/installer
источник

AH

Andrey Helldar in Laravel для начинающих
Еще можешь бахнуть composer clearcache
источник

S)

Shokha )) in Laravel для начинающих
источник

S)

Shokha )) in Laravel для начинающих
можно ли шас так с spatie permission?
источник

V

Vladyslav in Laravel для начинающих
как добавить второй первичный ключ через миграции?
источник

AH

Andrey Helldar in Laravel для начинающих
Vladyslav
как добавить второй первичный ключ через миграции?
primary может быть только один или что ты имеешь ввиду?
источник

V

Vladyslav in Laravel для начинающих
мне связку ключей надо добавить
источник

V

Vladyslav in Laravel для начинающих
праймери
источник

V

Vladyslav in Laravel для начинающих
а через миграции он массивы у меня не понимает
источник

AH

Andrey Helldar in Laravel для начинающих
Vladyslav
мне связку ключей надо добавить
Комбинированный ключ?
Один primary состоящий из двух и более?
источник

V

Vladyslav in Laravel для начинающих
Andrey Helldar
Комбинированный ключ?
Один primary состоящий из двух и более?
+
источник

AH

Andrey Helldar in Laravel для начинающих
Сек, ща код скину. Есть под рукой в проекте такое
источник

V

Vladyslav in Laravel для начинающих
в нете нашел такой решение, а вот что б средствами миграций? https://stackoverflow.com/questions/34880277/laravel-migration-fails-multiple-primary-keys
не хочется прибегать к использованию скул команд
источник

AH

Andrey Helldar in Laravel для начинающих
Vladyslav
а через миграции он массивы у меня не понимает
1. Миграция:
Schema::create('my_table', function (Blueprint $table) {
   $table->primary(['client_id', 'order_id', 'order_field_id']);
});

2. Втыкаешь composer require andrey-helldar/support (либо переносишь логику класса себе - на твой выбор).

3. Если перенес - радуешься. Если поставил пакет, то в нужной модели:
use Illuminate\Database\Eloquent\Model;
// заменить на
use Helldar\Support\Laravel\Eloquent\CompositeKeysModel as Model;

4. В модель добавляешь protected $primaryKey = []; указав в массиве имена колонок, по которым определяешь ключ.
Например:
protected $primaryKey = ['client_id', 'order_id', 'order_field_id'];
источник

AH

Andrey Helldar in Laravel для начинающих
Да ну, бред
источник

V

Vladyslav in Laravel для начинающих
Andrey Helldar
1. Миграция:
Schema::create('my_table', function (Blueprint $table) {
   $table->primary(['client_id', 'order_id', 'order_field_id']);
});

2. Втыкаешь composer require andrey-helldar/support (либо переносишь логику класса себе - на твой выбор).

3. Если перенес - радуешься. Если поставил пакет, то в нужной модели:
use Illuminate\Database\Eloquent\Model;
// заменить на
use Helldar\Support\Laravel\Eloquent\CompositeKeysModel as Model;

4. В модель добавляешь protected $primaryKey = []; указав в массиве имена колонок, по которым определяешь ключ.
Например:
protected $primaryKey = ['client_id', 'order_id', 'order_field_id'];
https://github.com/andrey-helldar/support

это ж этот пакет?
источник

AH

Andrey Helldar in Laravel для начинающих
Да
источник

V

Vladyslav in Laravel для начинающих
Окей, спасибо :)
источник

AH

Andrey Helldar in Laravel для начинающих
Если что, логика работы с композитными ключами такая: https://github.com/andrey-helldar/support/blob/master/src/Laravel/Eloquent/CompositeKeysModel.php
источник

AH

Andrey Helldar in Laravel для начинающих
Vladyslav
Окей, спасибо :)
Я обновил сообщение. Добавил четвертый пункт - он важный.
источник