【问题标题】:Why laravel show route [setting.edit] not defined?为什么 laravel show route [setting.edit] 未定义?
【发布时间】:2023-04-09 00:53:02
【问题描述】:

我遇到了这个问题。请告诉我如何解决这个问题..... 它显示这样的消息:

路线 [setting.edit] 未定义。 (查看:/home/rashed/Downloads/mahedy blog/resources/views/admin/layout/header.blade.php)(查看:/home/rashed/Downloads/mahedy blog/resources/views/admin/layout/header. Blade.php)(查看:/home/rashed/Downloads/mahedy blog/resources/views/admin/layout/header.blade.php)

<?php


namespace App\Http\Controllers\Admin\Settings;



use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Model\admin\Admin;
use Illuminate\Support\Facades\Auth;

class SettingsController extends Controller
{

    public function __construct()
    {
        $this->middleware('auth:admin');
    }


    public function edit($id)
    {
         $users = admin::find(Auth::user()->id);
         return view('admin.settings.update',compact('users'));
    }
}

路线:

Route::group(['namespace' => 'Admin'] , function()
{

  Route::get('/backend','HomeController@ShowHomePage');

  Route::resource('backend/category','CategoryController');
  Route::resource('backend/tag','TagController');
  Route::resource('backend/post','PostController');
  Route::resource('backend/admin','AdminController');

  Route::resource('backend/settings','SettingsController');

  Route::resource('backend/profile','ProfileController');
  Route::resource('backend/youtube','YoutubeController');
  Route::resource('backend/email','EmailController');

  /****Admin Login Route*****/
  Route::get('backend/login', 'Auth\LoginController@showLoginForm')->name('admin.login');
  Route::post('backend/login', 'Auth\LoginController@login');
  Route::post('backend/logout', 'Auth\LoginController@logout')->name('logout');

});

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    首先你必须得到路由名称,在终端试试这个:

    php artisan route:list
    

    这将为您提供带有名称的所有可用路线,您可以从那里获取名称并使用它

    【讨论】:

      【解决方案2】:

      检查您的 /admin/layout/header.blade.php 文件中是否存在试图打开路由 setting.edit 的表单。

      您的路由文件不包含settings 路由,正如您发布的那样,因此来自 header.blade.php 的表单或路由路径调用了错误的 url。查看并从标题表单中删除 setting.edit,或添加路由/资源。

      【讨论】:

      • 我认为路线名称变为backend/settings.exit 而不是settings.edit
      • 是的,可能。无论哪种方式,修复都是编辑刀片文件,或者只是添加/编辑其中的路线。
      【解决方案3】:

      如果您添加 backend 字符串,您的路线名称会有所不同。删除这个词并将其添加到前缀中

      你的路线应该是这样的

       Route::group(['namespace' => 'Admin', 'prefix'=>'backend'] , function()
       {
       Route::resource('settings','SettingsController');
       .....
        }
      

      现在您的路线名称settings.edit 将起作用。 您可以通过php artisan route:list查看您的可用路线

      【讨论】:

        【解决方案4】:
        • 删除“后端”,您的路线必须是这样的:

        Route::resource('settings','SettingsController');

        • 还有这样的功能:

          公共功能编辑(Settings $settings) {

          return view('admin.settings.edit',compact('settings'));
          

          }

        “编辑”而不是“更新”

        【讨论】:

          猜你喜欢
          • 2020-06-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-09-05
          • 2018-08-23
          • 2021-11-30
          • 2017-10-25
          • 2019-03-18
          相关资源
          最近更新 更多