【问题标题】:How to handle Laravel NotFoundHttpException?如何处理 Laravel NotFoundHttpException?
【发布时间】:2016-07-27 10:44:19
【问题描述】:

我正在通过自我练习来学习 Laravel。基本上我想要实现的是参数“id”可以从路由传递给控制器​​,以便在单击链接时获取该特定 id 的不同主题的列表。我检查了所有其他帖子,似乎我无法在那里得到答案。

这是我在 Route.php 中的代码,其中 mainpage 是我的应用程序的索引页。

Route::get('/public/', array( 'as' => 'Personal_assistant' , 'uses' => 'category_by_user@get_mainpage'));
Route::get('public/{id}' , array( 'as' => 'viewtopic' , 'uses' => 'category_by_user@get_topic'));

我在 Controller 'category_by_user' 中的代码:

class Category_by_user extends Controller
{ 
//

public $restful = true;

public function get_mainpage()
{

 $data = DB::table('categories')
      -> select('category_name', 'category_description')
    //->where('category_user_id', '=' , $user_id)
     ->get(); 

  return view::make('mainpage')
       ->with('title', 'Category By User')
        ->with('data' , $data );
  }


  public function get_topic($id)
  {
       $data1 = DB::table('topics')
       ->where('Category_id', '=' , $id)
      ->get(); 


      return View::make('viewtopic') 
         ->with('title', 'All Topic by Category')
         ->with('data1' , $data1)
         ->with('id' , $id);
       }
 }

我在 viewtopic.blade.php 中的代码:

 {h1>Personal Info Assistant</h1>

  <!-- will be used to show any messages -->
  @if (Session::has('message'))
        <div class="alert alert-info">{{ Session::get('message') }}</div>
  @endif

  <table class="table table-striped table-bordered">

   <tbody>
   <!--  // List all categories belongs to that particular user -->


   @foreach($data1 as $key => $topic)
       <tr>

        <td>{{ $topic->topic_description }}</td>
        <td>ID = {{ $id }}</td>

      </tr>
   @endforeach
   </tbody>
 </table>

 </div>
 </body>
 </html>

错误详情日志如下:

    in RouteCollection.php line 161
    at RouteCollection->match(object(Request)) in Router.php line 821
    at Router->findRoute(object(Request)) in Router.php line 691
    at Router->dispatchToRoute(object(Request)) in Router.php line 675
    at Router->dispatch(object(Request)) in Kernel.php line 246
    at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php     line 52
    at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Debugbar.php line 49
    at Debugbar->handle(object(Request), object(Closure))
    at call_user_func_array(array(object(Debugbar), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
    at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44
    at CheckForMaintenanceMode->handle(object(Request), object(Closure))
    at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
    at Pipeline->Illuminate\Routing\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
    at Pipeline->then(object(Closure)) in Kernel.php line 132
    at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99
    at Kernel->handle(object(Request)) in index.php line 54
    at require_once('C:\wamp\www\Personal_Info_App\public\index.php') in server.php line 21

非常感谢您提供的任何帮助。

【问题讨论】:

  • 据我所知,您定义的路线有问题。尝试(确定)/public 而不是 /public//public/{id} 而不是 public/{id}

标签: php laravel controller routes


【解决方案1】:

你能显示链接和在你的链接中传递 id 的代码吗?可能 $id 未在您的 href attr 中正确传递。

【讨论】:

  • 我认为id 不是问题,因为它是NotFoundHttpException。但是看到他请求的网址对我们很有帮助。
  • 感谢所有快速回复。我附上了 2 张图片,其中包含主页链接(第 1 张)和单击其中一个类别后的链接。希望我提供正确的信息。再次感谢。
猜你喜欢
  • 2019-12-04
  • 1970-01-01
  • 2021-01-06
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
  • 2018-04-14
  • 1970-01-01
  • 2017-01-23
相关资源
最近更新 更多