Laravel:从视图作曲家的控制器中获取数据
问题描述:
Atm我正在创作这个视图作曲家以获得乐趣。它正在收集.js文件名,然后将其传递给要链接的布局。使用的文件名取决于当前页面。例如像Slides这样排名较低的页面不包含用户管理中使用的Ajax请求。请不要问我为什么要这样做xD。我正在计划验证请求。只是无聊。Laravel:从视图作曲家的控制器中获取数据
无论如何,因为我对拉拉维尔还很陌生,我仍然在寻找更有效的方法来做事。 Atm Im静态访问文件名。该控制器现在看起来是这样
class Controller extends BaseController
{
public static $js_file_names = [];
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}
在的PageController我构建的文件名:
class SlidesController extends Controller
{
public function __construct()
{
parent::$js_file_names = ['ccs', 'ajax-updates'];
}
而且finaly我retreive他们注册Viewcomposer里面是这样的: (在开发$ use_filenames拥有所有的文件默认)
public function __construct()
{
$filenames = Controller::$js_file_names;
if(!empty($filenames))
$this->use_filenames = $filenames;
var_dump($this->use_filenames);die;
}
这一切似乎工作正常,但最大的问题是,有没有更好的方式来访问控制器数据f在一个视图组合器里面?每次我尝试谷歌这个,我得到的结果像'传递数据视图'等,这不是问题。
更新: 我的另一个想法是将所有文件名存储在viewcomposer本身的数组中,并检查当前页面是否存在于该数组中。这将保持控制器更清洁。
答
使用视图作曲家在这种情况下并不合理。由于你的控制器已经“知道”哪些文件,他们的意图分享,你可能也只是将它们传递到视图像这样:
class SlidesController extends Controller
{
public function __construct()
{
View::share('user_filenames', ['ccs', 'ajax-updates']);
}
}
作曲家更分享具体的元素,如用户的集合,一个服务提供者或其他类实例。
ic,所以每次都有不同的js文件数组,这不是具体的吗?我喜欢View :: share()的想法,我只需要想办法来默认它。也许我可以在Controller中实例化一个关注View :: share的类,因为它被页面控制器 –
扩展了,这些链接甚至不是它自己的视图,而仅仅是它的一部分--.O为什么我不认为这是'观' - 作曲家 –