Extends Model == расширяет яркость?
Все примеры Eloquent Models в Laravel 4 расширяют Eloquent, но когда вы создаете модель в Laravel 5, она говорит extends Model, они одинаковы?
Laravel 4
<?php
class User extends Eloquent {
//Code
}
Laravel 5
<?php
class User extends Model {
//Code
}
Laravel 5 docs говорит:
Определение ярко выраженной модели
class User extends Model {}
Ответы
Ответ 1
Да, они одинаковы. Laravel 4 использует Class Aliasing для сопоставления Illuminate\Database\Eloquent\Model
с Eloquent
. Вы можете увидеть в файле app/config/app.php
:
'Eloquent' => 'Illuminate\Database\Eloquent\Model',
В Laravel 5 вместо этого используется пространство имен. Итак, в верхней части класса модели вы увидите эту строку:
use Illuminate\Database\Eloquent\Model;
Ответ 2
используется...
use Illuminate\Database\Eloquent\Model;
чтобы расширить модель
Ответ 3
Я использую файл _ide_helper.php
от barryvdh laravel-ide-helper
Подкласс также называется Eloquent и продолжается до Model.
Итак, если я расширяю свой собственный класс модели до Eloquent, среда IDE знает все функции, такие как MyModelClass:: find. Возможно, есть другой способ сделать это, но это действительно работает для меня.