Laravel по-русски

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

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

#1 23.09.2014 00:50:12

Валерий

Внешний ключ в таблице при создании миграции

Только начинаю изучать Larovel - сильно не пинайте.

Создаю миграцию:
    public function up()
    {
        Schema::create('items', function($t){
            $t->increments('id');
            $t->integer('user_id');
            $t->string('name');
            $t->boolean('done');
            $t->foreign('user_id');
        });
    }

Вываливается с ошибкой Syntax error - не указан  references `` ()

Как видите создаю внешний ключ user_id для таблицы, но нужно передать еще два параметра  в sql запросе было бы так - foreign key (`user_id`) references `user` (id)

В описании метода внешнего ключа:

public Fluent foreign(string|array $columns, string $name = null)
Specify a foreign key for the table.

В классе формирования запроса Illuminate\Database\Schema\Grammars\Grammar, методом внешнего ключа compileForeign:
параметры принимаются. Запрос правильно формируется.

Как правильно передать references `user` (id) через параметр метода foreign класса Illuminate\Database\Schema\Blueprint?

#2 23.09.2014 05:11:08

Alex

Re: Внешний ключ в таблице при создании миграции

я вот так делаю
    $table->integer('city_id')->unsigned()->index();
    $table->foreign('city_id')->references('id')->on('cities')->onDelete('cascade');

#3 23.09.2014 09:02:08

Валерий

Re: Внешний ключ в таблице при создании миграции

Alex пишет:

я вот так делаю
    $table->integer('city_id')->unsigned()->index();
    $table->foreign('city_id')->references('id')->on('cities')->onDelete('cascade');

Спасибо! Показали как сделать индекс, внешний ключ и удаление каскадом. Все работает!

У меня один невольный вопрос - где почерпнуть информацию об этих методах. Может где в документации по API есть, а я не туда посмотрел?

#4 23.09.2014 16:56:25

Re: Внешний ключ в таблице при создании миграции

Валерий пишет:
Alex пишет:

я вот так делаю
    $table->integer('city_id')->unsigned()->index();
    $table->foreign('city_id')->references('id')->on('cities')->onDelete('cascade');

Спасибо! Показали как сделать индекс, внешний ключ и удаление каскадом. Все работает!

У меня один невольный вопрос - где почерпнуть информацию об этих методах. Может где в документации по API есть, а я не туда посмотрел?

http://laravel.ru/docs/v4/schema#индексы

Изменено abler98 (23.09.2014 16:57:23)

Не в сети

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