Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉威尔:试图获得财产'';非对象_Php_Laravel - Fatal编程技术网

Php 拉威尔:试图获得财产'';非对象

Php 拉威尔:试图获得财产'';非对象,php,laravel,Php,Laravel,我正在检索一些要与所有视图共享的变量,为此我使用了laravel的视图生成器 但是,在尝试访问刀片模板中的值时,我遇到以下错误: “正在尝试获取非对象的属性'socialLinks'(视图:C:\xampp\htdocs\Costadog4\resources\views\inicio\index.blade.php)” 完成此操作后: {{ $allGlobals->socialLinks->twitter }} 我的环球作曲家: <?php namespace App\

我正在检索一些要与所有视图共享的变量,为此我使用了laravel的视图生成器

但是,在尝试访问刀片模板中的值时,我遇到以下错误:

“正在尝试获取非对象的属性'socialLinks'(视图:C:\xampp\htdocs\Costadog4\resources\views\inicio\index.blade.php)”

完成此操作后:

{{ $allGlobals->socialLinks->twitter }}
我的环球作曲家:

<?php

namespace App\Http\ViewComposers;

use Illuminate\View\View;
use App\Models\Globals;
use App\Models\Post;
use Auth;
use Config;

class GlobalsComposer
{


    public function __construct()
    {
        // Dependencies automatically resolved by service container...
    }


    public function compose(View $view)
    {

        $globals = Globals::all()->pluck('value', 'name'); 

        $socialLinks = [

            'twitter' => config('globals.twitter'),
            'facebook' => config('globals.facebook'),
            'instagram' => config('globals.instagram'),

        ];

        $layoutLinks = [

            'classPosts' => Post::withCategory('Clases')->take(10)->get(),
            'behaviourPosts' => Post::withCategory('Conducta canina')->take(10)->get(),
            'trainingPosts' => Post::withCategory('Formación')->take(10)->get(),

        ];

        $loggedUser = Auth::user();

        $allGlobals = compact('globals', 'socialLinks', 'layoutLinks', 'loggedUser');
        //dd($allGlobals);

        $view->with('allGlobals', $allGlobals);
    }
}
社交链接是一个数组。将其更改为:

{{ $allGlobals->socialLinks['twitter'] }}
社交链接是一个数组。将其更改为:

{{ $allGlobals->socialLinks['twitter'] }}

allGlobals
socialLinks
都是数组,因此您不能使用
->
,而是使用
['key']

{{ $allGlobals['socialLinks']['twitter'] }}

allGlobals
socialLinks
都是数组,因此您不能使用
->
,而是使用
['key']

{{ $allGlobals['socialLinks']['twitter'] }}
我应该:

{{ $allGlobals->socialLinks['twitter'] }}
因为
$allGlobals
是一个对象,而
$allGlobals->socialLinks
是一个数组。 因此,如果您尝试像这样访问它,
$allGlobals->socialLinks->twitter
,那么您将得到一个错误

尝试访问非对象的属性

我应该:

{{ $allGlobals->socialLinks['twitter'] }}
因为
$allGlobals
是一个对象,而
$allGlobals->socialLinks
是一个数组。 因此,如果您尝试像这样访问它,
$allGlobals->socialLinks->twitter
,那么您将得到一个错误

尝试访问非对象的属性


socialLinks
是一个数组,您可以将其用作:

{{$allGlobals->socialLinks['twitter']}}

    $socialLinks = [

        'twitter' => config('globals.twitter'),
        'facebook' => config('globals.facebook'),
        'instagram' => config('globals.instagram'),

    ];

    $socialLinks = collect($socialLinks); // Convert array to collection
现在,这应该是可行的:

{{$allGlobals->socialLinks->twitter}

提示: 使用链式方法时使用
optional()
方法

{{可选($allGlobals->socialLinks)->twitter}

这消除了“尝试获取非对象的属性”错误,并在缺少socailLinks时返回
NULL

    $socialLinks = [

        'twitter' => config('globals.twitter'),
        'facebook' => config('globals.facebook'),
        'instagram' => config('globals.instagram'),

    ];

    $socialLinks = collect($socialLinks); // Convert array to collection
如果使用PHP7

{{$allGlobals->socialLinks->twitter???“www.defaulturl.com”}


建议转换为收集,因为您的数据将在
$allGlobals
收集中持久化
社交链接是一个数组,您可以将其用作:

{{$allGlobals->socialLinks['twitter']}}

    $socialLinks = [

        'twitter' => config('globals.twitter'),
        'facebook' => config('globals.facebook'),
        'instagram' => config('globals.instagram'),

    ];

    $socialLinks = collect($socialLinks); // Convert array to collection
现在,这应该是可行的:

{{$allGlobals->socialLinks->twitter}

提示: 使用链式方法时使用
optional()
方法

{{可选($allGlobals->socialLinks)->twitter}

这消除了“尝试获取非对象的属性”错误,并在缺少socailLinks时返回
NULL

    $socialLinks = [

        'twitter' => config('globals.twitter'),
        'facebook' => config('globals.facebook'),
        'instagram' => config('globals.instagram'),

    ];

    $socialLinks = collect($socialLinks); // Convert array to collection
如果使用PHP7

{{$allGlobals->socialLinks->twitter???“www.defaulturl.com”}


建议转换为集合,因为您的数据将在
$allGlobals
集合中持久化,因此您可以看到
sociallinks
是数组。那么为什么要使用
->
符号呢?所以可以看到
sociallinks
是数组。那么为什么要使用
->
符号呢?