Szymon J.
Szymon J.

Reputation: 59

How to get data $request from by form in laravel by json type

I'm trying to get data from my form in Laravel 8. In this form I try to write down information from user and send it by json. My forms looks like:

<form action="/profile" method="get" enctype="application/json">
    <label for="name">Player name</label>
    <input type="text" id="name" value="{{ $data->name }}">
    <label for="from">The lowest number</label>
    <input type="number" id="from" value="{{ $data->from }}">
    <label for="to">The highest number</label>
    <input type="number" id="to" value="{{ $data->to }}">
    <label for="attempts">Number of attempts</label>
    <input type="number" id="attempts" value="{{ $data->attempts }}">
    <button type="submit">Save</button>
</form>

I have Controller for this and for the action="/profile":

namespace App\Http\Controllers\Game;

use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Contracts\View\View;
use Illuminate\Http\Request;

class UserController extends Controller
{
    public function store(Request $request)
    {
        $data = $request;
        
        return view('newUser', [
            'data' => $data
        ]);
    }

    public function profile(Request $request)
    {
        $data = $request->all();
        dd($request->all());

        return response($data)
            ->header('Content-Type', 'application/json');
    }
}

And my Routes:

Route::get('/new', 'UserController@store')
    ->name('user.store');

Route::get('/profile', 'UserController@profile')
    ->name('user.profile');

The problem is that I think i will get the values from this form, but the $request->all() is only empty array. I don't know what I'm missing. How to get this data?

Thanks for help.

Upvotes: 0

Views: 1485

Answers (1)

jssDev
jssDev

Reputation: 993

You have to set 'name' attribute in your inputs:

<input type="text" id="name" name="name" value="{{ $data->name }}">

Upvotes: 2

Related Questions