I am a bit confused when it comes to laravels mass assignment.
I know that I can protect fields using:
protected $fillable = [
'username', 'email', 'password'
];
and be protected here:
$flight = App\Flight::create(Input:all);
or
$flight->fill(['name' => 'Flight 22']);
But I only create or update Models like this:
public function createUser(NewUserRequest $request, User $newUser)
{
$newUser->insertUser($request);
}
insertUser looks like this:
public function insertUser($request)
{
$newUser = $this;
$newUser->user_type = (int) $request->input('user_type');
$newUser->username = $request->input('username');
$newUser->email = $request->input('email');
if ($request->filled('password')) {
$newUser->password = bcrypt($request->input('password'));
}
if ($request->filled('facebook_id')) {
$newUser->facebook_id = $request->input('facebook_id');
}
$newUser->save();
return $newUser;
}
As you can see I always pick what fields I want to insert and what data should be inserted. So do I really need to set my $fillable
when I dont use the create()
or fill()
methods?