mardi 26 avril 2016

Laravel 5.1: Call to undefined method Illuminate\Database\Query\Builder::fill()

Following much discussion and failed attempts

I need help filling an eloquent model

Also had a probelm with guarding http://ift.tt/241xz8k Which i overcame with protected $guarded = ['id'];

Profile model

public function user(){
        return $this->belongsTo('App\User');
    }

User Model

public function profile(){
        return $this->hasOne('App\Profile', 'user_id');
    }

Controller

public function update(Request $request, $id)
{
    $user = User::with('profile')->findOrFail($id);

    $input = $request->all();


    if(is_null($user->profile)){
        $profile = new Profile($input['profile']);
        $user->profile()->save($profile);
    alert()->warning('New profile creation attempt!');

    }else{
        // $user->profile()->fill($input['profile'])->save();
        $user->profile->title = $input['profile']['title'];
        $user->profile->facebook_username = $input['profile']['facebook_username'];
        $user->profile->meetup_user_id = $input['profile']['meetup_user_id'];
        $user->profile->save();
        // dump($input['profile']['title']);
        // dump($user->profile->title);
        //Unless it fails silently like before.
    alert()->success('Profile Saved!');
    }

    return redirect()->route('admin.users.edit', [$id]);
}

Notice how I am manually filling, this is not ideal obviously. this is the result i am trying to achieve



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire