将数据传递给 Laravel 中控制器提供的所有视图
Passing data to all views served by a controller in Laravel
我的控制器有两种方法,每种方法提供不同的视图:
class NavController extends Controller {
public function posts()
{
$posts = Post::all();
$tabs = Tag::all();
return view('posts')->with('posts', => $posts, 'tags' => $tags);
}
public function users()
{
$users = User::all();
$tabs = Tag::all();
return view('users')->with('users', => $users, 'tags' => $tags);
}
}
我希望避免在每个方法中编写用于检索和传递标签的逻辑,因此我想知道是否有一种方法可以在控制器的一个位置检索数据,然后默认将其传递给每个方法此控制器提供的视图。
我认为值得一提的是,我不想在所有视图之间共享此数据,因此,例如,我可以在不同的控制器中使用标签变量来根据不同的逻辑提供标签。
在 class 构造函数上使用 View::share
:
use View;
class NavController extends Controller {
function __construct() {
View::share('tags', Tag::all());
}
public function posts()
{
$posts = Post::all();
return view('posts')->with('posts', => $posts);
}
public function users()
{
$users = User::all();
return view('users')->with('users', => $users);
}
}
我的控制器有两种方法,每种方法提供不同的视图:
class NavController extends Controller {
public function posts()
{
$posts = Post::all();
$tabs = Tag::all();
return view('posts')->with('posts', => $posts, 'tags' => $tags);
}
public function users()
{
$users = User::all();
$tabs = Tag::all();
return view('users')->with('users', => $users, 'tags' => $tags);
}
}
我希望避免在每个方法中编写用于检索和传递标签的逻辑,因此我想知道是否有一种方法可以在控制器的一个位置检索数据,然后默认将其传递给每个方法此控制器提供的视图。
我认为值得一提的是,我不想在所有视图之间共享此数据,因此,例如,我可以在不同的控制器中使用标签变量来根据不同的逻辑提供标签。
在 class 构造函数上使用 View::share
:
use View;
class NavController extends Controller {
function __construct() {
View::share('tags', Tag::all());
}
public function posts()
{
$posts = Post::all();
return view('posts')->with('posts', => $posts);
}
public function users()
{
$users = User::all();
return view('users')->with('users', => $users);
}
}