2016-01-09 4 views
1

У меня проблема с laravel. Мне нужно создать два класса:Наследование модели Laravel 5

Class Users {} 
Class Companies extends Users {} 

Это отношение к наследству. И это моя база данных:

enter image description here

И я не знаю, как создать модель пользователя и компании в Laravel. И как их использовать. Вы можете мне помочь?

спасибо заранее!

+0

Я не ясно из диаграммы, какие отношения в БД - это 'id' на' companies' внешний ключ к 'ид 'на' пользователя'? Если это так, и это отношение наследования (которое я бы читал как «компания - это особый тип пользователя»), почему 'siren' является частью первичного ключа, подразумевая, что строка в' users' может быть подключена к более чем одна строка в «компаниях»? – IMSoP

+0

Да, идентификатор для компаний - это внешний ключ для идентификатора пользователей. И компания - особый тип пользователя :). Но для одного пользователя может быть только одна компания или нет. –

+0

Вам действительно нужно наследование здесь? Eloquent не поддерживает это, это можно сделать, переопределив некоторые из методов Eloquent, но в вашем случае это, похоже, не стоит усилий. Разве не существует индивидуального отношения между пользователем и компанией? –

ответ

1

Если вы используете artisan тогда все было бы так просто, пишущей следующую команду в терминале, дает, что ваш pwd ваш каталог проекта:

php artisan make:model User 

Это создаст User.php файл, класс с именем User и наследуется от Model.php, класс модели eloquent.

Если вы хотите создать модель, а также создать таблицу в базе данных с определенными столбцами, вы можете использовать --migration аргумент с предыдущей командой, например:

php artisan make:model User --migration 

После выполнения этой команды, вам 'необходимо открыть database/migrations и изменить файл, созданный так, как вы хотите создать таблицу.

Если вы не используете artisan, тогда вы должны просто создать модель вручную, создав новый класс в файле, который простирается от модели eloquent.

Например:

use Illuminate\Database\Eloquent\Model; 


class User extends Model 
{ 

} 

И это должно быть.

Для получения дополнительной информации обратитесь к документации Laravel, в которой содержатся все ваши основные вопросы, такие как тот, который вы только что задали.

Для ссылки на документацию о моделях, clikc here

+0

О, я думаю, что мое объяснение было плохим. Я знаю, как создать модель и как ее использовать и т. Д. Но я не знаю, как создать модель с отношениями наследования. Документация laravel об этом не говорит. –

+0

Наследование отношений? Вы имеете в виду наследование ООП? –

Смежные вопросы