Php 如何连接控制器类中的两个变量并将其传递给laravel中该类的所有视图
我试图在控制器中连接两个类spesific变量,并将其传递给所有视图,而不在每个控制器方法中重复相同的变量 示例代码:Php 如何连接控制器类中的两个变量并将其传递给laravel中该类的所有视图,php,laravel,variables,laravel-blade,Php,Laravel,Variables,Laravel Blade,我试图在控制器中连接两个类spesific变量,并将其传递给所有视图,而不在每个控制器方法中重复相同的变量 示例代码: class ProductsController extends Controller { private $global_path; //Comes from .env private $sub_folder = '/products_folder'; public function __construct() { /
class ProductsController extends Controller
{
private $global_path; //Comes from .env
private $sub_folder = '/products_folder';
public function __construct()
{
//Frontend Image Path - to pass into all views
$frontend_path = $this->global_path.$this->sub_folder;
}
}
我想将“$frontend_path”传递给在控制器中创建的所有刀片视图,而不在每个方法中重复它,如
return view('example_view', compact('frontend_path');
我尝试查看::共享。。。但我做不到
并非所有控制器中的“$sub_folder”变量的值都相同。
有什么方法可以实现吗?对于您的代码,我想您可以将其更改为
class ProductsController extends Controller
{
public $frontend_path;
public function __construct() {
$this->frontend_path = env('GLOBAL_PATH') . '/products_folder';
}
public function index()
{
$x = $this->frontend_path;
return view('index', compact('x'));
}
}
并直接使用它,如$this->frontend_path
或下面的SELF::$frontend_path
class ProductsController extends Controller
{
public static $frontend_path;
public function __construct() {
SELF::$frontend_path = env('GLOBAL_PATH') . '/products_folder';
}
public function index()
{
$x = SELF::$frontend_path;
return view('index', compact('x'));
}
}
或
鉴于
{{ $frontend_path }}
如果它独立于控制器和模型,为什么不创建一个帮助器或常量文件来存储所有这些内容,然后从那里使用它们呢?不,就像我说的,$sub_folder'变量在每个控制器中都是不同的。如果是这样的话,我可以很容易地在.EV中定义它并调用它。对于各自的模型是否有各自的控制器,那么您可以考虑定义静态方法并从控制器调用它们。“<代码>子文件夹> /代码>与控制器名相关的路径吗?@ RossWilson不,不是。@ MigavoKAN您对此有任何错误吗?请让我知道。是的,错误是:“常量表达式包含无效操作”@megavolkan现在可以尝试一下并告诉我结果吗?@megavolkan我刚刚在安装中尝试过,它对我很好,你可以尝试一下并让我现在就知道吗?但是我如何将它传递到我的刀片视图,而不在所有控制器方法中重复它
{{ $frontend_path }}