Php 在通过控制器的某些视图中包含不同的变量
我是Laravel的新手,我已经开始了我的第一个项目(使用Laravel 5.7)。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
我想在每个视图中使用一些变量。
例如,通常我会创建一个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中为每个页面设置边栏菜单项,我的方法将非常简单且易于管理。如果您不需要在每个刀片文件中使用变量,您可能不想使用我的方式。如果你认为我的答案有帮助,你可以同意我的答案?好的,非常感谢。普拉尚·德什穆克。。。。