我知道这可能是非常愚蠢的事情,但我似乎无法修复它。
我收到此错误
Handler.php第131行中的NotFoundHttpException:模型[App \ Modules \ Menus \ Models \ Menu]没有查询结果。
似乎无法修复它。目前它甚至不应该要求菜单模型。
这是我的route.php
Route::get('/signup', [
'uses' => 'OpenController@signup',
'as' => 'signup'
]);
这是我的OpenController.php
<?php
namespace App\Modules\Open\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Modules\Menus\Models\Menu;
use App\Modules\Authors\Models\Story;
class OpenController extends Controller
{
public function index(){
$menus_child = Menu::where('menu_id', 0)->with('menusP')->get();
$menu = Menu::where('id', 1)->orWhere('title', 'home')->firstOrFail();
return view('open::index', compact('menus_child', 'menu'));
}
public function content($id){
$menus_child = Menu::where('menu_id', 0)->with('menusP')->get();
$menu = Menu::where('id', $id)->firstOrFail();
$layout = $menu->type;
$stories = Story::where('type', 'public')->get();
return view('open::public/'.$layout, compact('menus_child', 'menu', 'stories'));
}
public function signup(){
echo "sign up";
die();
}
}
这是我的signup.blade.php
@extends('templates::layouts.public')
@section('content')
<h1>signup blade</h1>
@stop
这是我的public.blade.php布局
<!DOCTYPE html>
<html>
<head>
<title>Website</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css?family=Cherry+Swash|Crafty+Girls|Homemade+Apple|Italianno|Parisienne|Ranga|Rochester" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
{!! Html::style('css/bootstrap.min.css') !!}
{!! Html::style('css/style.css') !!}
{!! Html::script('js/jquery-3.1.1.min.js') !!}
{!! Html::script('js/bootstrap.min.js') !!}
{!! Html::script('js/main.js') !!}
</head>
<body>
<div class="container">
<div id="main">
<div id="header">
<div id="logo">
<div class="row">
<div class="col-lg-6">
<h1>Website</h1>
</div>
<div class="col-lg-6">
<div class="slogan">
{!! Html::link('/signup', 'Signup') !!} / {!! Html::link('/login', 'Login') !!}
</div>
</div>
</div>
</div>
@include('menus::menu')
</div>
<div id="site_content">
<div id="content">
@yield('content')
</div>
</div>
</div>
</div>
</body>
</html>
这是我的menu.blade.php
<div id="menubar">
<ul class="nav navbar-nav" id="menu">
@foreach($menus_child as $grandfather)
@if($grandfather->menu_id)
<li>
@elseif($grandfather->title == 'Home')
<li class="parent {{ menu_active([$grandfather->id]) }}">
@elseif(count($grandfather->menusP()->where('menu_id', '>', 0)->get()))
<li class="dropdown {{ menu_active([$grandfather->id]) }}">
@else
<li class="parent {{ menu_active([$grandfather->id]) }}">
@endif
@if(count($grandfather->menusP()->where('menu_id', '>', 0)->get()))
{!! HTML::decode(HTML::link($grandfather->id, $grandfather->title.'<span class="caret"></span>', array('class' => 'dropdown-toggle')))!!}
@else
{!! HTML::link($grandfather->id, $grandfather->title) !!}
@endif
@if(count($grandfather->menusP))
<ul class="dropdown_menu">
@foreach($grandfather->menusP as $father)
@if($father->menu_id)
<li class="parent_child">
@else
<li>
@endif
{!! HTML::link($father->id, $father->title) !!}
@endforeach
</ul>
@endif
@endforeach
</ul>
</div>
答案 0 :(得分:4)
我发现了导致这个问题的原因。这就是我放置路线的方式。所以我所做的只是将我的注册路线放在我的路线上,这解决了我的问题
答案 1 :(得分:0)
@Gus,@ Isis
这篇文章帮助我解决了一个非常相似(或可能相同)的问题。在我的特定情况下,我立即意识到这是简单的用户错误 - 这可能有助于解释为什么会发生这种情况......
考虑后续路线,请考虑访问以下网址:
获取 app.com/team/add-favorite
[bad] 路线:
// Bad Routing Logic
Route::get('/team/{team}', 'TeamController@show');
Route::get('/team/add-favorite', 'UserTeamController@default');
Route::get('/team/add-favorite/{conference}', 'UserTeamController@index');
显然,第二条路线(/ team / add-favorite)永远不会被调用,因为它只是路由到 / team / {team} ,其中[team]参数填充了一个值“add-favorite”。
我的解决方案是简单地重新安排路线的顺序,如此......
[更好] 路线:
// Still not good practice, but works
Route::get('/team/add-favorite', 'UserTeamController@default');
Route::get('/team/add-favorite/{conference}', 'UserTeamController@index');
Route::get('/team/{team}', 'TeamController@show');
这绝对不是最佳做法,但至少会允许每条路线正确解决。
app.com/team/add-favorite 现在将匹配第一条路线,而 app.com/team/17 之类的内容仍将落在第三条路线上路由并使用适当的ID传递给TeamController。
再次 - 我不建议使用“共享”端点以这种方式进行路由,因为它肯定会导致问题。即 - 更好的希望从来没有一个团队和ID ='add-favorite'。极不可能,但你明白了......
希望这有帮助!