【问题标题】:laravel blade foreach fetching related tasks to projects 'Trying to get property of non-object'laravel Blade foreach 将相关任务提取到项目“试图获取非对象的属性”
【发布时间】:2014-11-04 16:35:27
【问题描述】:

您好,我正在尝试将所有相关任务输出到项目,但我的错误日志中出现“尝试获取非对象的属性”,所以我不确定我做错了什么,有没有人有任何想法?

这是我的观点,有 foreach

{{ $project->project_name }}
    {{ $project->project_brief }}
    {{ $project->clients->client_name }}

   @foreach ($project->tasks as $project)
    {{ $project->tasks->task_name }}
    @endforeach

这是我执行查询的存储库

public function getProjectTasks($project_id) {

    return \Project::with(['clients', 'tasks'])
        ->whereUserId(Auth::user()->id)
        ->find($project_id);
}

这是我的控制器:

public function projectrelatedtasks($project_id)
    {

    // get the Project tasks
        $project = $this->project->getProjectTasks($project_id);
    return View::make('projects.projectrelatedtasks')
            ->with('project', $project);        
        }

但我收到此错误:

Next exception 'ErrorException' with message 'Trying to get property of non-object (View: /media/sf_Sites/tempus/app/views/projects/projectrelatedtasks.blade.php)' in /media/sf_Sites/tempus/app/storage/views/6e987b895513269a7fde1cd2f82fc6a1:12
Stack trace:
#0 /media/sf_Sites/tempus/bootstrap/compiled.php(9742): Illuminate\View\Engines\CompilerEngine->handleViewException(Object(ErrorException))
#1 /media/sf_Sites/tempus/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(56): Illuminate\View\Engines\PhpEngine->evaluatePath('/media/sf_Sites...', Array)
#2 /media/sf_Sites/tempus/bootstrap/compiled.php(9619): Illuminate\View\Engines\CompilerEngine->get('/media/sf_Sites...', Array)
#3 /media/sf_Sites/tempus/bootstrap/compiled.php(9606): Illuminate\View\View->getContents()
#4 /media/sf_Sites/tempus/bootstrap/compiled.php(9597): Illuminate\View\View->renderContents()
#5 /media/sf_Sites/tempus/bootstrap/compiled.php(10295): Illuminate\View\View->render()
#6 /media/sf_Sites/tempus/bootstrap/compiled.php(9826): Illuminate\Http\Response->setContent(Object(Illuminate\View\View))
#7 /media/sf_Sites/tempus/bootstrap/compiled.php(5190): Symfony\Component\HttpFoundation\Response->__construct(Object(Illuminate\View\View))
#8 /media/sf_Sites/tempus/bootstrap/compiled.php(4998): Illuminate\Routing\Router->prepareResponse(Object(Illuminate\Http\Request), Object(Illuminate\View\View))
#9 /media/sf_Sites/tempus/bootstrap/compiled.php(4984): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#10 /media/sf_Sites/tempus/bootstrap/compiled.php(717): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#11 /media/sf_Sites/tempus/bootstrap/compiled.php(698): Illuminate\Foundation\Application->dispatch(Object(Illuminate\Http\Request))
#12 /media/sf_Sites/tempus/bootstrap/compiled.php(7706): Illuminate\Foundation\Application->handle(Object(Illuminate\Http\Request), 1, true)
#13 /media/sf_Sites/tempus/bootstrap/compiled.php(8309): Illuminate\Session\Middleware->handle(Object(Illuminate\Http\Request), 1, true)
#14 /media/sf_Sites/tempus/bootstrap/compiled.php(8256): Illuminate\Cookie\Queue->handle(Object(Illuminate\Http\Request), 1, true)
#15 /media/sf_Sites/tempus/bootstrap/compiled.php(10895): Illuminate\Cookie\Guard->handle(Object(Illuminate\Http\Request), 1, true)
#16 /media/sf_Sites/tempus/bootstrap/compiled.php(659): Stack\StackedHttpKernel->handle(Object(Illuminate\Http\Request))
#17 /media/sf_Sites/tempus/public/index.php(49): Illuminate\Foundation\Application->run()
#18 {main} [] []

有谁知道我如何构建这个 foreach 来获取项目的所有相关任务?

【问题讨论】:

    标签: laravel foreach eloquent blade


    【解决方案1】:

    您的for 循环错误。应该是

    @foreach ($project->tasks as $task)
        {{ $task->task_name }}
    @endforeach
    

    您正在遍历所有tasks,因此foreach 中的第二个参数是task 本身。

    【讨论】:

    • @g_9020,好! Symphony 错误通常很擅长告诉您问题所在。学习阅读并爱上它们!
    • @g_9020,如果您不介意,如果对您有帮助,您可以选择这个作为答案吗?
    猜你喜欢
    • 1970-01-01
    • 2020-03-28
    • 2018-07-14
    • 2018-10-13
    • 1970-01-01
    • 2017-08-20
    • 2015-09-22
    • 2017-03-20
    • 2014-03-25
    相关资源
    最近更新 更多