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()]);
}
}
希望这能涵盖您的查询。这样你就不需要在每个控制器中重复你的代码。
伙计,我创建了一个 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()]);
}
}
希望这能涵盖您的查询。这样你就不需要在每个控制器中重复你的代码。