【问题标题】:Trying to get property 'title' of non-object (View: /Applications/MAMP/htdocs/LARAVEL/LaravelDesdeCero/laravel/resources/views/portfolio.blade.php)试图获取非对象的属性“标题”(查看:/Applications/MAMP/htdocs/LARAVEL/LaravelDesdeCero/laravel/resources/views/portfolio.blade.php)
【发布时间】:2020-07-21 05:19:58
【问题描述】:

我在尝试在屏幕上打印投资组合项目时遇到了这个问题。

我的观点是这样的:

<ul>
        @forelse ($portfolio as $portfolioItem)
            <li>{{ $portfolioItem->title }}</li>
        @empty
            <li>No hay proyectos para mostrar.</li>
        @endforelse
    </ul>

控制器代码是这样的:

<?php

namespace App\Http\Controllers;

use App\Project;
use Illuminate\Http\Request;

class portfolioController extends Controller
{
    public function index()
    {
        $portfolio = Project::get();

        return view('portfolio' , compact('portfolio'));
    }
}

谁能告诉我怎么了?

谢谢。

【问题讨论】:

  • 表示$portfolioItem中没有title属性,先尝试dump,使用dd($portfolioItem)检查可用元素
  • 它抛出这个:array:4 [▼ 0 => array:1 [▼ "title" => "Proyecto #1" ] 1 => array:1 [▼ "title" => " Proyecto #2" ] 2 => array:1 [▼ "title" => "Proyecto #3" ] 3 => array:1 [▼ "title" => "Proyecto #4" ] ]
  • 好的,试试 $portfolioItem['title'] 而不是 $portfolioItem->title
  • 成功了,非常感谢!
  • 不客气 :))

标签: php laravel


【解决方案1】:

如果您的查询返回一个数组,您需要使用[] 而不是对象访问器-&gt;。 您可以通过dd($portfolio) 进行检查

【讨论】:

  • 它抛出这个:array:4 [▼ 0 => array:1 [▼ "title" => "Proyecto #1" ] 1 => array:1 [▼ "title" => " Proyecto #2" ] 2 => array:1 [▼ "title" => "Proyecto #3" ] 3 => array:1 [▼ "title" => "Proyecto #4" ] ]
猜你喜欢
  • 2020-04-16
  • 1970-01-01
  • 2019-11-16
  • 1970-01-01
  • 2020-10-25
  • 2018-03-22
  • 2019-02-24
  • 2020-09-26
  • 2019-04-08
相关资源
最近更新 更多