Laravel Models/function,如何制作主"function"

Laravel Models/function, how to make a main "function"

伙计,我创建了一个 Laravel 项目。 我有一个师父。始终包含用户数据的布局。 例如,我有一个带有 $user->name 的导航栏。

我需要在每个控制器中添加用户模型以及 where 函数。

$user = User::find(auth()->user()->id)

也许这个例子不好,但我在母版中也包含了公司,所以它显示在导航栏中。

有没有办法让我不需要重复这个过程?所以我并不总是需要它在控制器中。

感谢阅读。

你也可以在你的blade模板中获取数据,比如用户信息,但是如果你需要更复杂的数据并且你不想把逻辑放在blade中,你可以使用这个方法(AppServiceProvider.php) :

public function boot()
{
    view()->composer('your_mast_layout', function($view)
    {
        $data = ...
        $view->with('variable_name', $data);
    });
}

在 laravel 中,您正在从主控制器扩展每个 class,因此最好在主 class 中创建一个方法,如下所示

子控制器

class testController extends Controller
{
   // as you can see its extending so go into Controller class
}

parent class,所以我在这里创建了一个 getName 方法。如果你想通过 mode

获取值
<?php

namespace App\Http\Controllers;

use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;


class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;

    private $current_user_name = 'test';

    public function getName()
    {
        return ($this->current_user_name);
    }
}

现在回到子控制器并在视图中传递这个方法

class testController extends Controller
{
       public function index()
      {
        return view('', $data = ['name' => $this->getName()]);
      }
}

希望这能涵盖您的查询。这样你就不需要在每个控制器中重复你的代码。