【问题标题】:Route not working路由不工作
【发布时间】:2016-12-15 09:03:40
【问题描述】:

我正在关注一个教程,我在其中查看单个帖子,但由于某种原因,它看到了未找到的期望,我不知道缺少什么

RouteCollection.php 第 161 行中的 NotFoundHttpException:

我正在尝试通过这个 URL

访问路由
http://domain.app/admin/blog/post/2&admin

查看路径

视图 -> 管理员 -> 博客 -> single.blade.php

路线

Route::group(['prefix' => '/admin'], function(
Route::get('/blog/post/{post_id}&{$end}', [
    'uses'  => 'PostController@getSinglePost',
    'as'    => 'admin.blog.post'
]);
});

控制器

    <?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Post;
use App\Catgory;

class PostController extends Controller {
public function getSinglePost($post_id, $end = 'frontend') {
    $post = Post::find($post_id);

    if(!$post) {
        return redirect()->route('blog.index')->with(['fail' => 'Post not found']);
    }

    return view ($end, '.blog.single', ['post' => $post]);
}
}

【问题讨论】:

  • 你的观点存在吗?在这种情况下,您是否在以下文件夹结构中有一个文件名 single.blade.php:blog/frontend/
  • 我的视图在视图 -> admin -> blog -> single.blade.php .. 你会在 URL 中看到我传递的参数 &admin 应该调用 admin.blog.single跨度>

标签: php laravel laravel-5 laravel-routing


【解决方案1】:

你可以这样试试吗?

路线

<?php 

    // SHOULD MATCH SOMETHING LIKE: /admin/blog/post/1/admin
    // OR:                          /admin/blog/post/1/frontend
    Route::group(['prefix' => '/admin'], function(
        Route::get('/blog/post/{post_id}/{end}', [
            'uses'  => 'PostController@getSinglePost',
            'as'    => 'admin.blog.post'
        ]);
    });

控制器

<?php

    namespace App\Http\Controllers;
    use Illuminate\Http\Request;
    use App\Post;
    use App\Catgory;

    class PostController extends Controller {
        public function getSinglePost($post_id, $end = 'frontend') {
            $post = Post::find($post_id);

            if(!$post) {
                return redirect()->route('blog.index')->with(['fail' => 'Post not found']);
            }
            // YOU ARE CONCATENATING SO NO NEED FOR COMMA...
            return view($end . '.blog.single', ['post' => $post]);
        }
    }

【讨论】:

    【解决方案2】:

    尝试 / 而不是 &...

    Route::group(['prefix' => '/admin'], function(
    Route::get('/blog/post/{post_id}/{end}', [
        'uses'  => 'PostController@getSinglePost',
        'as'    => 'admin.blog.post'
    ]);
    });
    

    你的网址应该是.....

    http://domain.app/admin/blog/post/2/admin
    

    return view ($end.'.blog.single', ['post' => $post]);//remove , and add .
    

    【讨论】:

    • view()中删除,并添加.
    猜你喜欢
    • 2016-09-06
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多