在视图编辑器中检索视图数据

时间:2014-06-12 21:34:28

标签: php laravel

如果我在此视图作曲家中执行以下操作:

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;
});

2 个答案:

答案 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;