如果我在此视图作曲家中执行以下操作:
View::composer('product.edit', function($view)
{
$viewdata = $view->getData();
dd($viewdata);
});
我可以在输出中看到'language_id',但是我不知道如何检索它,因为$viewdata['language_id']
会抛出异常。
我应该怎么做?
更新
接受的答案让我发现,当演示者参与此操作时,模型将在偏移中可用,这是最终代码:
View::composer('product.edit', function($view)
{
$data = $view->offsetGet('product')->toArray();
echo $data['language_id'];
exit;
});
答案 0 :(得分:1)
你可以试试这个:
$language_id = $view->offsetGet('language_id');
$view
对象中提供了以下公共方法(Illuminate\View\View
的实例)
0 => string '__construct' (length=11)
1 => string 'render' (length=6)
2 => string 'renderSections' (length=14)
3 => string 'with' (length=4)
4 => string 'nest' (length=4)
5 => string 'withErrors' (length=10)
6 => string 'getEnvironment' (length=14)
7 => string 'getEngine' (length=9)
8 => string 'getName' (length=7)
9 => string 'getData' (length=7)
10 => string 'getPath' (length=7)
11 => string 'setPath' (length=7)
12 => string 'offsetExists' (length=12)
13 => string 'offsetGet' (length=9)
14 => string 'offsetSet' (length=9)
15 => string 'offsetUnset' (length=11)
16 => string '__get' (length=5)
17 => string '__set' (length=5)
18 => string '__isset' (length=7)
19 => string '__unset' (length=7)
20 => string '__call' (length=6)
21 => string '__toString' (length=10)
您也可以尝试这样的事情:
if($view->offsetExists('language_id')) {
$language_id = $view->offsetGet('language_id');
}
答案 1 :(得分:0)
值得注意的是,您还可以使用属性语法访问视图数据(至少从 Laravel 8 开始):
$languageId = $view->product->language_id ?? null;