Я работаю над формой с Laravel 5, следуя руководству из Openclassropms о Laravel 4, и это действительно дало мне тяжелое время.

В любом случае, я пытаюсь изменить эти строки в моем файле routes.php:

Route::get('users' , 'UsersController@getInfos');
Route::post('users', 'UsersController@postInfos');

С этой строкой:

Route::controller('users', 'UsersController');

Но это нарушает мою форму, я все еще могу видеть область ввода текста, но отправка ее дает мне следующую ошибку:

NotFoundHttpException в строке 145 RouteCollection.php

Вот мои контроллеры и шаблоны:

<?php namespace App\Http\Controllers;
use Illuminate\Support\Facades\Input;
class UsersController extends Controller {

    public function getInfos()
    {
        return \View::make('infos');
    }

    public function postInfos()
    {
        echo 'The name is ' . Input::get('nom');
    }

}

@extends('tempform')

А также

@section('content')
    {!! Form::open(array('url'=>'users')) !!}
        {!! Form::label('nom', 'Enter your name:') !!}
        {!! Form::text('nom') !!}
        {!! Form::submit('Submit') !!}
    {!! Form::close() !!}
@stop

Кроме того, я использую другой URL-адрес после внесения изменений, как указано вначале в руководстве: gappsl / users >> gappsl / users / info

1
ferenan 26 Фев 2015 в 20:43

3 ответа

Лучший ответ

Вы должны создать в вашем контроллере новый метод под названием getIndex() или postIndex() в зависимости от того, какой HTTP-глагол вы будете использовать. Таким образом, маршрут /users будет работать правильно.

2
Maksym Cierzniak 26 Фев 2015 в 17:57

Вам нужно изменить форму строки, открытую для:

  {!! Form::open(array('url'=>'users/post-infos')) !!}

Для решения вашей функции postInfos()

-1
Edwin Krause 26 Фев 2015 в 18:08

Если вы используете метод Route::controller(), он всегда ищет функции, начинающиеся с HTTP-глагола.

В вашем случае, если вы хотите указать postInfos() в форме. Затем вам нужно изменить определение формы на это:

{!! Form::open(array('url'=>'users/infos', 'method'=>'POST')) !!}

Или

Если вы не знаете, какие маршруты использовать, просто перейдите в командную строку в корневом каталоге вашего приложения и введите php artisan route:list.

Там вы можете найти, какой URI указывает на какой метод с полным путем к контроллеру.

0
Raviraj Chauhan 27 Фев 2015 в 10:07