Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在通过控制器的某些视图中包含不同的变量_Php_Laravel_Laravel Blade - Fatal编程技术网

Php 在通过控制器的某些视图中包含不同的变量

Php 在通过控制器的某些视图中包含不同的变量,php,laravel,laravel-blade,Php,Laravel,Laravel Blade,我是Laravel的新手,我已经开始了我的第一个项目(使用Laravel 5.7)。 我想在每个视图中使用一些变量。 例如,通常我会创建一个config.php文件,在其中放置变量并在每个页面中使用它们(显然在所有页面中都包含config.php)。 但是,对于拉威尔,我可以把这些变量放在哪里如何在所有视图中使用它们 这是我的web.php: Route::get('/task','TaskController@index'); Route::get('/task/insert','TaskCo

我是Laravel的新手,我已经开始了我的第一个项目(使用Laravel 5.7)。
我想在每个视图中使用一些变量。

例如,通常我会创建一个config.php文件,在其中放置变量并在每个页面中使用它们(显然在所有页面中都包含config.php)。

但是,对于拉威尔,我可以把这些变量放在哪里
如何在所有视图中使用它们

这是我的web.php

Route::get('/task','TaskController@index');
Route::get('/task/insert','TaskController@setInsertTask');
Route::get('/task/list','TaskController@getTaskList');
class TaskController extends Controller
{
    public function index(){
        return view('task.index');
    }

    public function setInsertTask(){
        return view('task.insert');
    }

   public function getTaskList(){
        return view('task.list');
    }
}
任务控制器中

Route::get('/task','TaskController@index');
Route::get('/task/insert','TaskController@setInsertTask');
Route::get('/task/list','TaskController@getTaskList');
class TaskController extends Controller
{
    public function index(){
        return view('task.index');
    }

    public function setInsertTask(){
        return view('task.insert');
    }

   public function getTaskList(){
        return view('task.list');
    }
}
现在我尝试将变量放入TaskController中,如下所示:

class TicketController extends Controller
{
    private $titlePage1 = "Task manager";
    private $titlePage2 = "Task manager insert";

    public function index(){
        return view('task.index',[
        'titlePage' => $this->titlePage1
    ]);
    }

    public function setInsertTask(){
    return view('task.insert',[
        'titlePage' => $this->titlePage2
    ]);
    }

   public function getTaskList(){
    return view('task.list',[
        'titlePage' => $this->titlePage1
    ]);
    }
}
@extends('layout.layout')

@section('content')
    <h1>{{ $titlePage }}</h1>
@endsection
视图中我插入了如下内容:

class TicketController extends Controller
{
    private $titlePage1 = "Task manager";
    private $titlePage2 = "Task manager insert";

    public function index(){
        return view('task.index',[
        'titlePage' => $this->titlePage1
    ]);
    }

    public function setInsertTask(){
    return view('task.insert',[
        'titlePage' => $this->titlePage2
    ]);
    }

   public function getTaskList(){
    return view('task.list',[
        'titlePage' => $this->titlePage1
    ]);
    }
}
@extends('layout.layout')

@section('content')
    <h1>{{ $titlePage }}</h1>
@endsection
@extends('layout.layout'))
@节(“内容”)
{{$titlePage}
@端部
但我不认为这是最好的解决方案,我也不喜欢它。

在这个项目中,我想使用这个变量,因为:
1.我想管理三个相互关联的不同软件(例如用户登录、管理员登录、技术人员登录),它们有相同的数据库,单个区域很小。因此,对于每个区域,我希望打印不同的标题。

2.在页面中有一些静态单词,因此我将创建一个包含所有单词的数组,以便集中所有静态单词。

3.像标题页一样,我想要同样的东西和菜单。在php(而不是html)中的单个文件中管理不同区域的不同菜单。

4。我希望在其他控制器中使用相同的变量。

我搜索了很多,但找不到在某些视图中包含常规变量的最佳做法。


有人能帮我吗?非常感谢。

是的,您可以使用.env at route中定义的变量

例如在.env中

name=test
您可以将其作为env('name')获取


是的,您可以使用.env at route中定义的变量

例如在.env中

name=test
您可以将其作为env('name')获取


您可以使用BaseController

class BaseController extends Controller
{
  public function __construct()
  {
  $titlePage1 = "Task manager";
  $titlePage2 = "Task manager insert";

  View::share(['titlePage1' => $titlePage1, 'titlePage2' => $titlePage2 ]);
 }
}
您可以在任何视图
{{$titlePage1}}
{{$titlePage2}}

您还可以使用
AppServiceProvider执行相同的操作
在
AppServiceProvider
boot()
中,添加以下代码

public function boot() {
  $titlePage1 = "Task manager";
  $titlePage2 = "Task manager insert";

  View::share(['titlePage1' => $titlePage1, 'titlePage2' => $titlePage2 ]);
}

您可以使用BaseController

class BaseController extends Controller
{
  public function __construct()
  {
  $titlePage1 = "Task manager";
  $titlePage2 = "Task manager insert";

  View::share(['titlePage1' => $titlePage1, 'titlePage2' => $titlePage2 ]);
 }
}
您可以在任何视图
{{$titlePage1}}
{{$titlePage2}}

您还可以使用
AppServiceProvider执行相同的操作
在
AppServiceProvider
boot()
中,添加以下代码

public function boot() {
  $titlePage1 = "Task manager";
  $titlePage2 = "Task manager insert";

  View::share(['titlePage1' => $titlePage1, 'titlePage2' => $titlePage2 ]);
}

您可以在
AppServiceProvider


我已经回答了另一个问题。有关详细信息,请访问:

您可以在
AppServiceProvider
中与
View::share
共享所有视图的变量



我已经回答了另一个问题。有关详细信息,请访问此网站:

是否要从数组中发送页面名称?请查看下面的链接@Ashish Mmmh,我不知道在哪里可以放置包含对每个页面/视图有用信息的变量。所以,我想知道这是最好的做法。例如,按照Sanjit Bhardwaj的建议修改.env,或者按照Prashant Deshmukh的建议修改BaseController…?@kalaivanan好的,我知道如何传递多个变量来查看。但是我可以把这些变量放在哪里呢?哪个文件更好?你想从数组中发送页面名吗?检查下面的链接@Ashish Mmmh,我不知道在哪里可以放置包含对每个页面/视图有用信息的变量。所以,我想知道这是最好的做法。例如,按照Sanjit Bhardwaj的建议修改.env,或者按照Prashant Deshmukh的建议修改BaseController…?@kalaivanan好的,我知道如何传递多个变量来查看。但是我可以把这些变量放在哪里呢?在哪个文件中更好?但是我可以在.env中添加或更改变量吗?我认为最好不要更改.env文件。但是我可以在.env文件中添加或更改变量吗?我认为最好不要更改.env文件。我有一个Controller.php,带有
类Controller extensed BaseController
。是一样的吗?@Giu我想你可以把这段代码放到
Controller
BaseController
中,希望两者都能工作。我有一个Controller.php和
class Controller extensed BaseController
。是一样的吗?@Giu我想你可以把这个代码放到
Controller
BaseController
中,希望两者都能用。好的,非常感谢。普拉尚·德什穆克。。。。。建议将该代码放在BaseController中。有比另一个更好的文件吗?或者如果我将其写入文件AppServiceProvider或BaseController是同一件事?如果您选择
BaseController
方式,则您的所有控制器都必须从
BaseController
类扩展,而不是从Laravel的
Controller
类扩展。因此,当您想通过artisan创建控制器时,每次我觉得很累时,您都必须在生成的控制器中更改extends类。:)但是如果我使用Controller.php?我不需要扩展创建的每个控制器,我假设我有相同的结果。是这样吗?对不起,我只是想知道哪种方法最好,非常感谢您的耐心。:)两种方法可能也是你需要的正确方法。这取决于您的需要:)例如,如果您想在external sidebar.blade.php中为每个页面设置边栏菜单项,我的方法将非常简单且易于管理。如果您不需要在每个刀片文件中使用变量,您可能不想使用我的方式。如果你认为我的答案有帮助,你可以同意我的答案?好的,非常感谢。普拉尚·德什穆克。。。。