Термин «защищенная модель Laravel» относится к функции среды Laravel, которая позволяет вам указать, какие атрибуты модели не подлежат массовому назначению. Если модель защищена, попытки массового присвоения значений защищенным атрибутам будут игнорироваться.
Вот несколько методов, связанных с защищенными атрибутами в моделях Laravel, а также примеры кода:
- Свойство
guarded. Вы можете определить защищенные атрибуты непосредственно в модели, установив свойствоguardedкак массив имен атрибутов. Например:
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $guarded = ['id', 'created_at', 'updated_at'];
}
В этом примере атрибуты id, create_atи updated_atзащищены и не могут быть назначены массово.
- Свойство
fillable. Альтернативно вы можете использовать свойствоfillableдля указания атрибутов, которые можно массово назначать, вместо указания защищенных атрибутов. Например:
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $fillable = ['name', 'email', 'password'];
}
В этом случае массово могут быть назначены только атрибуты name, emailи password.
- Метод
unguard: если вы хотите временно отключить защиту защищенных атрибутов, вы можете использовать методunguard. Это позволяет массово назначать все атрибуты. Например:
$user = new User;
$user->unguard();
$user->fill([
'name' => 'John Doe',
'email' => 'johndoe@example.com',
'password' => bcrypt('secretpassword'),
]);
$user->save();
В этом примере метод unguardвызывается для временного отключения защиты защищенных атрибутов, позволяя назначать все атрибуты с помощью метода fill.