【问题标题】:Laravel 5 - Route with parameter not rendering the view correctlyLaravel 5 - 带有参数的路由无法正确渲染视图
【发布时间】:2015-12-06 18:46:57
【问题描述】:

所以我在我的 routes.php 文件中定义了这些路由。

Route::group(['prefix' => 'personaje'], function () {

    Route::get('{pjid}', 'PersonajeController@verPj');
    Route::get('editar/{pjid}', 'PersonajeController@editarPj');
});

这是我的控制器功能:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Auth;
use DB;

class PersonajeController extends Controller {

    public function editarPj($pjId) {

        if (Auth::check())
        {   
            $usuario = Auth::user();
            $id = $usuario->id;
            $personaje = DB::table('personajes')->where('idusuario', '=', $id)->where('id', '=', $pjId)->get();
            return view('editarpj', ['pj' => $personaje]);
        }

        return redirect('/login');
    }

    public function verPj($pjId) {

        if (Auth::check())
        {   
            $usuario = Auth::user();
            $id = $usuario->id;
            $personaje = DB::table('personajes')->where('idusuario', '=', $id)->where('id', '=', $pjId)->get();
            return view('verpj', ['pj' => $pjId]);
        }
        return redirect('/login');
    }
}

例如,当我尝试访问“localhost/personaje/5”时,视图将不会使用刀片模板呈现。它看起来像这样:

https://gyazo.com/689f64007e239e072c56b8307278d178

但是如果我删除 routes.php 文件中的参数和控制器函数,当我尝试访问 'localhost/personaje/' 时,视图会正确呈现,如下所示:

https://gyazo.com/8fbb7166df1b4aea3cd12748ad25df2e

视图只有一个导航栏,仅此而已,它还没有使用任何参数。为什么会这样?这几天我一直在搞砸,我找不到解决办法。

谢谢。

【问题讨论】:

  • 看起来像是资产链接问题。尝试在您的 css 链接中添加 /。像这样 请注意开头的斜线 (/)。请粘贴您的 css 标题链接,以便我们检查。

标签: laravel parameters routes rendering


【解决方案1】:

第一条路线可能会同时捕获两条路线。

试试

Route::group(['prefix' => 'personaje'], function () {
    Route::get('editar/{pjid}', 'PersonajeController@editarPj');
    Route::get('{pjid}', 'PersonajeController@verPj');
});

最好将最具体的路线放在最上面,这样更通用的路线就不会碍事。

【讨论】:

  • 没有修复它。有点奇怪。如果您从路由和控制器中删除参数,则视图将正确呈现。如果您保留它们,则视图将无法正确呈现。我认为这可能是 Laravel 5.1 中的一个错误
  • 您是否有另一条路线可以捕获localhost/personjae
【解决方案2】:

我不知道它是否仍然相关,但对于那些仍在寻求解决方案的人:
当链接你的 CSS 或 JS 而不是

<link rel="stylesheet" href="css/myCSS.css"> <script type="text/javascript" src="js/myJS.js"></script>

<link rel="stylesheet" href={{ asset("css/myCSS.css") }}> <script type="text/javascript" src={{ asset("js/myJS.js") }}></script>

最近遇到了同样的问题,这个解决了。
干杯!

【讨论】:

    猜你喜欢
    • 2021-02-10
    • 2015-04-05
    • 2014-07-23
    • 2016-02-09
    • 2015-04-17
    • 1970-01-01
    • 2021-02-02
    • 2019-02-09
    • 2015-05-14
    相关资源
    最近更新 更多