0

我正在构建一个应用程序,每个公司都有多个用户。所有用户都可以上传文件/图像/xls 等。我想将所有公司数据保存在公司单独的文件夹中。为此,我正在检查每个用户的公司详细信息,然后将数据上传到公司特定文件夹。我可以每次用户登录一次检查公司数据库并将用户的公司详细信息共享给所有控制器并且可以轻松访问。

4

3 回答 3

1

在 AppServiceProvider 中使用视图编辑器

App\Providers\AppServiceProvider.php

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        view()->composer('*',function($view) {
            if(auth()->user()) {
              $comanyData = App\Company::where('user_id',auth()->user()->id);
              $view->with('companyData', $companyData);
            }
        });
    }
}
于 2019-10-23T06:39:57.417 回答
0

下面是如何通过 AppServiceProvider 与整个应用程序共享变量,您也可以在构造方法中的基本控制器内部执行此操作。

文件:App\Providers\AppServiceProvider.php

<?php

namespace App\Providers;

use View;
use Illuminate\Support\ServiceProvider;

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

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        View::share('key', 'value');
    }
}


然后,您可以访问$key任何视图内部。

于 2019-10-23T06:40:09.397 回答
0

您可以使辅助函数在控制器或刀片文件中使用。

让我们创建一个助手!

  1. 创建一个简单的 PHP 文件。

在 app 目录或您想要的任何目录中创建 Helper.php。

<?php
/**
* get company data
*
*/
function companyData()
{
   // Create logic of company data
   // return company data
}
  1. 自动加载作曲家

创建 helper 后,Laravel 将无法识别我们的文件,因此我们需要将 helper 文件注册到我们的 composer.json。在自动加载部分中添加文件数组。它可能看起来像这样:

"autoload": {
   "classmap": ["database"],
   "psr-4": {"App\\": "app/"},
   "files" : ["app/Helper.php"]
}

然后别忘了跑

composer dumpautoload
  1. 使用辅助函数

我们的助手现在是自动加载的,所以我们应该能够立即在不同的控制器上使用我们的助手。只需在任何类中调用我们的函数

$companyData = companyData();

或在刀片视图中

{{ companyData() }}

如果您遇到问题,请告诉我。

于 2019-10-23T06:11:48.170 回答