Когда вы создаете модель в 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)
Не писать ответ