Форма PUT, приводящая к 404 Not Found (Laravel) - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть модель, пользователь UserController и форма входа с PUT, указанным в качестве метода.Мой маршрут также определен и соответствует маршруту формы.При отправке формы я получаю сообщение об ошибке 404. Not Found.

Я попытался назвать маршрут безрезультатно.

Модель пользователя

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $table = "panel_users";
    protected $primaryKey = "id";
    public $incrementing = true;
    public $timestamps = false;

    protected $fillable = ['username', 'password'];
}

UserController

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;

class UserController extends Controller
{
    public function index() {
        $user = new User;
        return view('login', ['user' => $user]);
    }

    public function attemptLogin(Request $request, User $user) {
        error_log($user);
        session(['username' => $user->username]);
        return redirect('/');
    }
}

Форма

{{ Form::model($user, ['route' => ['login.attemptlogin', $user], 'method' => 'PUT']) }}
                    <div class="form-group">
                        {{ Form::label('username', 'Username: ') }}
                        {{ Form::text('username', null, ['class' => 'form-control']) }}
                    </div>

                    <div class="form-group">
                        {{ Form::label('password', 'Password: ') }}
                        {{ Form::text('password', null, ['class' => 'form-control']) }}
                    </div>

                    <button class="btn btn-success" type="submit">Login</button>
{{ Form::close() }}

Определен маршрут

Route::put('/login/attemptlogins/{user}', 'UserController@attemptLogin')->name('login.attemptlogin');

Следует установить добавление имени пользователя в переменную сеанса и вывести модель на консоль.Ничего из этого не происходит.

Ответы [ 2 ]

1 голос
/ 18 апреля 2019

Попробуйте с этим,

{{ Form::model($user, ['route' => ['login.attemptlogin', $user->id], 'method' => 'PUT']) }}

В контроллере

public function attemptLogin(Request $request, $id) {
    // ...
}

Надеюсь, это поможет:)

0 голосов
/ 17 апреля 2019

вы должны изменить

{{ Form::model($user, ['route' => ['login.attemptlogin', $user->id], 'method' => 'PUT']) }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...