Когда вы создаете модель в Laravel, вам нужно определить свойства, которые будут соответствовать столбцам таблицы в базе данных. Эти свойства будут использоваться для чтения и записи данных в базу данных.
Для каждого свойства модели вы должны определить его имя, тип данных и другие свойства, такие как:
-
$fillable
: определяет, какие поля могут быть заполнены массово, когда данные отправляются из формы в контроллер. Если вы не укажете$fillable
, то все поля модели будут защищены от массового заполнения. Например, если у вас есть модельUser
и вы хотите разрешить массовое заполнение только для полейname
,email
иpassword
, то вы можете определить$fillable
следующим образом:
protected $fillable = ['name', 'email', 'password'];
-
$guarded
: определяет, какие поля должны быть защищены от массового заполнения. Если вы укажете$guarded
, то все поля, которые не указаны в этом массиве, будут разрешены для массового заполнения. Например, если у вас есть модельUser
и вы хотите защитить полеpassword
от массового заполнения, то вы можете определить$guarded
следующим образом:
protected $guarded = ['password'];
-
$hidden
: определяет, какие поля модели должны быть скрыты при преобразовании модели в массив или JSON. Например, если у вас есть модельUser
и вы хотите скрыть полеpassword
при выводе в массив или JSON, то вы можете определить$hidden
следующим образом:
protected $hidden = ['password'];
-
$casts
: определяет, какие поля модели должны быть преобразованы в определенный тип данных. Например, если у вас есть модельUser
и вы хотите преобразовать полеis_admin
в тип данныхboolean
, то вы можете определить$casts
следующим образом:
protected $casts = ['is_admin' => 'boolean'];
В Laravel модель имеет множество свойств, которые определяют ее поведение, связи с другими моделями, а также другие аспекты работы с данными. Некоторые из наиболее распространенных свойств модели в Laravel:
-
$table
: определяет имя таблицы, которая соответствует этой модели. По умолчанию Laravel использует имя, которое соответствует имени класса модели во множественном числе, но вы можете изменить это имя с помощью свойства$table
. Например, если у вас есть модельUser
, которая соответствует таблицеusers
, вы можете определить$table
следующим образом:
protected $table = 'my_users';
-
$primaryKey
: определяет имя столбца первичного ключа, который соответствует этой модели. По умолчанию Laravel использует столбецid
в качестве первичного ключа, но вы можете изменить его с помощью свойства$primaryKey
. Например, если у вас есть модельUser
, и первичный ключ для таблицыusers
называетсяuser_id
, то вы можете определить$primaryKey
следующим образом:
protected $primaryKey = 'user_id';
-
$timestamps
: определяет, используются ли автоматические метки времени для модели. Если вы хотите, чтобы Laravel автоматически заполнял поляcreated_at
иupdated_at
, вы можете установить$timestamps
в значениеtrue
. Например:
public $timestamps = true;
-
$incrementing
: определяет, должен ли первичный ключ модели быть автоинкрементируемым целым числом. По умолчанию Laravel предполагает, что первичный ключ будет автоинкрементируемым целым числом, но вы можете изменить это с помощью свойства$incrementing
. Если вы хотите, чтобы первичный ключ был строкой или другим типом данных, вы можете установить$incrementing
вfalse
. Например:
public $incrementing = false;
-
$connection
: определяет имя соединения базы данных, которое должно использоваться для этой модели. Если у вас есть несколько соединений базы данных в вашем приложении, вы можете выбрать соединение, которое должно использоваться для этой модели, с помощью свойства$connection
. Например, если у вас есть модельUser
, и вы хотите использовать соединениеusers_db
, то вы можете определить$connection
следующим образом:
protected $connection = 'users_db';
Помимо перечисленных, существуют и другие свойства.
Комментарии (0)
Не писать ответ