Skip to content

HW4 is completed#45

Open
aik27 wants to merge 2 commits into
AKazarmshchikov/hw3from
AKazarmshchikov/hw4
Open

HW4 is completed#45
aik27 wants to merge 2 commits into
AKazarmshchikov/hw3from
AKazarmshchikov/hw4

Conversation

@aik27

@aik27 aik27 commented May 20, 2025

Copy link
Copy Markdown

No description provided.

Comment thread app/Models/User.php
use Illuminate\Support\Carbon;

/**
* Пользователи

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Наличие аннотаций - 👍
Но дополнительно я рекомендую вместо неявных property с магическими методами под капотом, использовать явные геттеры и спрятать всю магию в них внутри модели. Вне модели - использовать только геттеры.

Comment thread app/Models/User.php

public function image(): MorphOne
{
return $this->morphOne(Image::class, 'image');

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Морфы по умолчанию добавляют в колонку _type Fully Qualified Class Name. Никогда не следует хранить имена классов в БД. Делая это вы стреляете себе в ногу, делая рефакторинг сложным и опасным. Класс перенесете в другую папку, и все сломается, а вы можете даже не заметить. Вместо этого можно использовать свои ключи и мэппинг на классы в коде: https://laravel.com/docs/11.x/eloquent-relationships#custom-polymorphic-types

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Супер, спасибо!

Comment thread app/Models/BaseModel.php
* @method static \Illuminate\Database\Eloquent\Builder<static>|BaseModel query()
* @mixin \Eloquent
*/
class BaseModel extends Model {}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Зачем вам пустой базовый класс?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

На случай, если нужно будет что-то добавить во все модели сразу. Не знаю, логирование какое-нибудь.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants