0

I just started learning Laravel and would like to make a dummy Account Manager. My first goal is to be able to add accounts to the mysql db via an html form/Eloquent model/controller/migration. Coming from JavaScript, I'm not really sure how to pass the data from the name or value attr to the correct method and on to the migration. Here's my code from the form:

<form method="POST" action="/addAccount">
    {{ csrf_field() }}
    <input class="inputs" type="text" name="fname" placeholder="First Name">
    <input class="inputs" type="text" name="lname" placeholder="Last Name">
    <input class="inputs" type="email" name="email" placeholder="Email">
    <h3>Account Types and ID's:</h3>
    <ul class="list">
        <li>Confirmation: 1</li>
        <li>Setup: 2</li>
        <li>Activated: 3</li> 
        <li>Deactivated: 4</li>
    </ul>
    <input class="inputs" type="number" name="ati" placeholder="Enter Account Type ID">
    <input class="inputs" type="checkbox" name="active"><p>Click to Activate!</p>
    <button class="button">Submit</button>
  </form>

web.php: Route::post('addAccount', 'AccountsController@store');

Code for AccountsController:

public function store(Request $request)
{

    $accounts = new Account;
    $accounts->first_name = $fname;
    $accounts->last_name = $lname;
    $accounts->email = $email;
    $accounts->account_type_id = $ati;
    $accounts->active = $active;

    $accounts->save();

    return redirect('/');
}

Currently getting an ErrorException of "Undefined variable: fname". Any hints would be greatly appreciated!

2 Answers 2

1

You just need to use

$request->fname

instead of

$fname
Sign up to request clarification or add additional context in comments.

Comments

0

In your form, please add :

{{ csrf_field() }}

Laravel checks if a form has a token to protect the application from CSRF attack. See link for more details. CSRF Protection

Also, add a name attr in your input types like so:

<input class="inputs" type="text" name="fname" placeholder="First Name">

In your web.php :

Route::post('addAccount', 'controllerName@controllerFunction');

In your controller:

function controllerFunction(Request $request){
   //$request contains all sent data.
   $fname= $request->input('fname'); #you can use this way
   $fname = $request->fname; #or this one

   ....

   //code for storing in DB using Eloquent

   $users= new Users;
   $users->first_name = $fname;
   ....

   $users->save();
}

Please check the document for using Laravel Eloquent

2 Comments

Thanks! Getting an ErrorException of "Undefined variable: fname" in my controller.
@MattLarson you forgot to get the data //$request contains all sent data. $fname= $request->input('fname'); #you can use this way $fname = $request->fname; #or this one

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.