2015-11-06 4 views
7

Я знаю, что это очень распространенный вопрос о переполнении стека. Я пробовал несколько из них, но не работал в моем сценарии.NotFoundHttpException в строке RouteCollection.php 161: in laravel 5

My CollectionController выглядит так.

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use Illuminate\Support\Facades\Auth; 
use App\Http\Requests; 
use App\Http\Controllers\Controller; 
use App\Http\Middleware\Role; 
use Illuminate\Support\Facades\Input; 
use App\User; 
use App\Invoice; 
use Session; 
use Validator; 


    class CollectionController extends Controller 
    { 
     /** 
     * Display a listing of the resource. 
     * 
     * @return Response 
     */ 

     public function __construct(){ 

     $this->middleware('role:collector'); // replace 'collector' with whatever role you need. 
    } 


     public function getHome(){ 

      $empid= Auth::user()->empid; 
      $invoice = Invoice::where('Status','=',1)->orderBy('Id', 'desc')->get(); 


     return View('collectionmodule/home')->with(array('invoices'=>$invoice)); 

    } 

     public function getPayment(){ 

    dd('sssss'); 
      $id =$invoiceid; 
      $invoice = Invoice::where('Id','=',$id)->payments()->comments()->get(); 

      return View('collectionmodule/payment')->with(array('invoice'=>$id)); 

    } 




     } 

Мои маршруты для этого класса как следовать

Route::controller('collection/home','CollectionController'); 
Route::controller('collection/payment','CollectionController'); 

Я получаю следующее сообщение об ошибке

NotFoundHttpException in RouteCollection.php line 161: 

Ни один из маршрутов не работают может любой помочь мне

Я пробовал с

http://localhost:8000/collection/home/ 

and 

http://localhost:8000/collection/payment 

Благодаря

+0

Я думаю, вам нужно передать имя метода в маршрут. как показано ниже: Route :: controller ('collection/home', 'CollectionController @ index'); Маршрут :: контроллер ('сбор/оплата', 'CollectionController @ payment'); –

+0

@LaljiNakum Я получил свои ответы. Я использую неявный способ, поэтому мне нужно назначить только один маршрут, подобный этому. 'Route :: controller ('collection', 'CollectionController'); «Теперь он отлично работает, кстати, у вас есть anyidea, как я буду называть модель, у которой есть одно отношение?» – Vikram

+0

Эй, Викрам, было бы лучше, если бы вы опубликовали свой ответ здесь для будущих ссылок для других. –

ответ

0

Ну это было довольно просто

В неявном вызове

я должен определить маршрут только один раз

Route::controller('collection','CollectionController'); 

так что теперь в URL-адрес коллекции/дома, если разбираемый то laravel автоматически вызовет Функция getHome()

4

Вы должны определить только один раз, когда маршрут:

Route::controller('collection','CollectionController'); 

И тогда вы можете перейти к маршрутам вы объявляете в функции имени контроллера.

Пример:

получить Главная. Маршрут будет из коллекции/дома

получает Платежи. Маршрут будет собираться/платежи

0

Я получал то же самое сообщение об исключении в laravel 5.4.10 и после траты около 2 часов я узнал, что route.php был удален в версиях 5.3, и просто создание файла не достаточно. Мы должны включить файл в файл RouteServiceProvider.php в функцию «map». Добавление ниже линии внутри карта функции решен вопрос для меня:

require app_path('Http/routes.php'); 
0

Это является наиболее распространенным исключением.

NotFoundHttpException in RouteCollection.php 

И это довольно легко понять. Вы можете обмануть его, если вы пропустили имя маршрута. Это может быть aricles вместо articles и тому подобное.

Попробуйте

php artisan route:list 

И проверить, если все имена маршрутов в порядке.