dimanche 1 novembre 2015

Passing id from view using modal-dialog to controler

I'm using the bootstrap modal to create and update users. I manage to get the create function working but not the update. My controller works as such that if no $user->id variable is passed it will create a new user else if there is an $user->id it will update that instead. However I cant figure how to pass the $user->id to the controller as I'm using a modal dialog. Can someone help me with this? My code can be seen as below.

manage.blade.php

<button class="btn btn-sm btn-warning" type="button"
      data-toggle="modal" data-target="#form">Edit&nbsp;<i class="glyphicon glyphicon-edit"></i></button>

<button type="button" class="btn btn-info btn-md" data-toggle="modal" data-target="#form">Register New User</button>

<!-- Modal -->
<div id="form" class="modal fade" role="dialog">
    <div class="modal-dialog">

        <!-- Modal content-->
        <div class="modal-content">
           <div class="modal-header">
              <button type="button" class="close" data-dismiss="modal">&times;</button>
              <h4 class="modal-title">User Information</h4>

...

controller.php

class ManageAccountsController extends Controller
{
    public $userRepository;

    public function __construct(UserRepository $userRepository)
    {
        $this->userRepository = $userRepository;
    }

    public function index() 
    {
        $users = User::orderBy('name')->get();
        $roles = Role::all();

        return view('manage_accounts', compact('users', 'roles'));
    }

     public function store(StoreUserRequest $request)
    {
      // validation already handled using this: http://ift.tt/16ovaIn
        $this->userRepository->upsert($request);

        Session::flash('flash_message', 'User successfully added!');

        return redirect()->back();

    }

    public function update(StoreUserRequest $request, $id)
    {
        // validation already handled using this: http://ift.tt/16ovaIn
        $this->userRepository->upsert($request, $id);

        Session::flash('flash_message', 'User successfully updated!');

        return redirect()->back();

    }
}

class UserRepository {

    public function upsert($data, $id = null)
    {

            // You will also need something like this
            if(isset($data['id']))
            {
                $user = $this->user->find($data['id']);
            }
            else {
                $user = new User;
            }

            $user->name     = $data['name'];
            $user->email    = $data['email'];
            $user->password = Hash::make($data['password']);
            $user->mobile   = $data['mobile'];
            $user->role_id  = $data['role_id'];

            // save our user
            $user->save();

            return $user;
        }
    }



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire