laravel blade foreach抓取相关任务到项目'试图获得非对象的属性' [英] laravel blade foreach fetching related tasks to projects 'Trying to get property of non-object'

查看:304
本文介绍了laravel blade foreach抓取相关任务到项目'试图获得非对象的属性'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将所有相关的任务输出到一个项目,但是我正在尝试在我的错误日志中尝试获取非对象的属性,所以我不知道我做错了什么,有没有人有想法?



这是我的观点,其中有一个foreach

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

@ foreach($ 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)
{

//获取项目任务
$ project = $ this- >项目 - > getProjectTasks($ PROJECT_ID);
return View :: make('projects.projectrelatedtasks')
- > with('project',$ project);
}

但我收到此错误:

 下一个异常'ErrorException'与消息'尝试获取非对象的属性(View:/media/sf_Sites/tempus/app/views/projects/projectrelatedtasks.blade。 php)'in / media / sf_Sites / tempus / app / storage / views / 6e987b895513269a7fde1cd2f82fc6a1:12 
堆栈跟踪:
#0 /media/sf_Sites/tempus/bootstrap/compiled.php(9742):照亮\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-> getContent s()
#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 - > __构造(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\Ro uter-> 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\H ttp \Request))
#17 /media/sf_Sites/tempus/public/index.php(49):Illuminate\Foundation\Application-> run()
#18 {main} [] []

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

解决方案

您的循环是错误的。应该是

  @foreach($ project->任务为$ task)
{{$ task-> ; task_name}}
@endforeach

您正在循环遍历所有任务,所以 foreach 中的第二个参数是任务本身。


Hi I am trying to output all the related tasks to a Project but I am getting 'Trying to get property of non-object' in my error log so I'm not sure what I am doing wrong, does anyone have any ideas?

This is my view which has the foreach

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

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

This is my repository which performs the query

public function getProjectTasks($project_id) {

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

and this is my controller:

public function projectrelatedtasks($project_id)
    {

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

but I get this error:

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} [] []

Does anyone know how I can construct this foreach to fetch all the related tasks to a project?

解决方案

Your for loop is wrong. It should be

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

Your are looping through all the tasks so the second argument in the foreach is the task itself.

这篇关于laravel blade foreach抓取相关任务到项目'试图获得非对象的属性'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆