【问题标题】:Laravel View Composer, cant seem to get it to workLaravel View Composer,似乎无法让它工作
【发布时间】:2019-12-07 02:39:42
【问题描述】:

所以我已经关注了许多教程和视频,并在此处进行了检查,但似乎无法使其正常工作,真的需要帮助。我将提供我的代码并解释我试图这样做,希望有人可以帮助我解决这个问题。所以我试图通过视图编辑器将我的 $user 和 $company 数据从我的数据库传递到我的部分布局。我使用 php artisan 在我的 view/composer 文件夹中制作了 composerserviceprovider 和dashboardcomposer,但出现错误。

我的composerserviceprovider.php如下

    <?php

namespace App\Providers;


use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
use App\companies;
use App\user;

class ComposerServiceProvider extends ServiceProvider
{
    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap services.
     *
     * @return void
     */
    public function boot()
    {
        view()->composer("layouts.dashboard","App\View\Composers\dashboardnavComposer");
    }

}

我的dashboardnavcomposer.php如下

<?



namespace App\View\Composers;

use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Auth;
use Illuminate\Contracts\View\View;
use Illuminate\Http\Request;
use App\companies;
use App\user;


class dashboardnavComposer
{
    public function compose(View $view)
    {
        $view->with('user', ComposerServiceProvider::all());

    }
}

我可能做错了什么或完全错过了一步,我已经做了 php artisan dumpautoload,所以这不是问题。任何帮助,将不胜感激。也让你知道,我在 10 多年前就这样做了,我辞去卡车司机的职务,所以上次我这样做 php4 是王道。所以请理解我大约 30 天前才开始重新学习。

提前感谢您提供的任何帮助。

【问题讨论】:

  • 我得到的错误是目标类 [App\View\Composers\dashboardnavComposer] 不存在。 (查看:/Users/mymacbookpro/nginxSites/backoffice/resources/views/backoffice/homepage.blade.php)

标签: php mysql laravel-5 mariadb laravel-datatables


【解决方案1】:

不确定您的文件名实际上是作曲家的,但您的文件名应该与类名匹配(以防万一)。该文件应命名为dashboardnavComposer.php。实际上,该类可能更像DashboardNavComposer,而文件应该是DashboardNavComposer.php。还要确保它位于app/Views/Composers 文件夹中。

不过,我不确定您的 View Composer 为何会调用服务提供商 ComposerServiceProvider

PSR-4 自动加载应该会拾取这些新文件。您可以运行composer dump 以防万一。

【讨论】:

  • 我也不确定我忘记了太多我什至不确定我做对了什么
  • 我更改了文件名和类名,然后没有工作,所以我将函数更改为:` public function compose(View $view) { $user = Auth::user(); $company = 公司::findOrFail($user->companyID); $view->with(compact('company', $company)) ->with(compact('user', $user)); }`
  • 我更改了文件名和类名,然后没有工作,所以我将函数更改为:code public function compose(View $view) { $user = Auth::user( ); $company = 公司::findOrFail($user->companyID); $view->with(compact('company', $company)) ->with(compact('user', $user)); }code 我仍然得到dashboardnavcomposer 不存在的相同错误
  • 顺便说一句,compact 不是这样工作的,请查看手册以了解如何使用 compact,或者干脆不使用它并自己创建数组
  • 好的,所以我解决了这个问题,我只是想从另一个让它工作的帖子中复制其他人,我只是想看看它是否能工作,但我仍然收到错误,但是我仍然无法弄清楚为什么我收到目标仪表板编写器不存在的错误,我已经检查并检查了所有内容的拼写是否正确,而我在这里不知所措。请有人帮忙,或者让我摆脱痛苦,哈哈。
猜你喜欢
  • 2021-04-02
  • 2012-06-09
  • 2011-11-30
  • 2015-09-20
  • 2011-11-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-19
  • 1970-01-01
相关资源
最近更新 更多