我在这里看到了一些问题,但都没有解决我的问题。我很困惑。我在社区和观念模式之间有很多关系。它完美地将值保存在枢轴表中,但我无法将数据提取到视图中。
思想模型:
public function communities() {
return $this->belongsToMany('App\Community', "community_idea");
}社区模式:
public function ideas() {
return $this->belongsToMany('App\Idea', "community_idea");
}商店邮政功能:
//function for creating Idea
public function storePost(IdeaRequest $request)
{
if ($request->hasFile('idea_image')) {
$filename = $request->file('idea_image')->getClientOriginalName();
$moveImage = $request->file('idea_image')->move('images/', $filename);
}
$idea = new Idea();
$idea->idea_title = $request->input('idea_title');
$idea->user_id = Auth::id();
$idea->idea_image = $moveImage;
$idea->idea_info = $request->input('idea_info');
$idea->idea_location = $request->input('idea_location');
$idea->idea_goal = $request->input('idea_goal');
$idea->idea_description = strip_tags($request->input('idea_description'));
$idea->save();
$idea->communities()->attach($request->input('selection'));
Session::set('idea_id',$idea->id);
session()->flash('flash_message', 'Your idea has been submitted for Review, Kindly Fill this Work BreakDown of You Work');
return redirect()->route('create_wbs');
}视图:当我尝试使用它时,它会抛出:
未定义属性: Illuminate\Pagination\LengthAwarePaginator::$communities`错误
@foreach($ideas->communities as $idea)
@if($idea->status == 1)
<div class="grid_3">
<div class="project-short sml-thumb">
<div class="top-project-info">
<div class="content-info-short clearfix">
<a href="{{URL::to('showidea', array($idea->id))}}" class="thumb-img">
<img src="{{asset($idea->idea_image)}}" alt="{{$idea->idea_title}}">
</a>
<div class="wrap-short-detail">
<h3 class="rs acticle-title"><a class="be-fc-orange" href="{{URL::to('showidea', array($idea->id))}}"><q>{{$idea->idea_title}}</q></a></h3>
<p class="rs tiny-desc">by <a href="#" class="fw-b fc-gray be-fc-orange">{{$idea->User->name}}</a></p>
<p class="rs title-description">{{$idea->idea_info}}</p>
<p class="rs project-location">
<i class="icon iLocation"></i>
{{$idea->idea_location}}
</p>
</div>
</div>
</div>
</div>
</div><!--end: .grid_3 > .project-short-->
@endif
@endforeach编辑:
public function showCommunities($id)
{
$community = Community::findOrFail($id);
$communities = Community::all();
$ideas = Idea::paginate(15);
// $ideas->communities()->ideas;
return view('publicPages.ideas_in_community', compact(['ideas', 'community', 'communities']));
}编辑2:
当我在var_dump on ideass时,它会显示以下数据。

当我在var_dump on $idea时,它显示以下数据

视图代码
@foreach($ideas as $idea)
@foreach($idea->communities as $ideass)
@if($ideass->status == 1)
<div class="grid_3">
<div class="project-short sml-thumb">
<div class="top-project-info">
<div class="content-info-short clearfix">
<a href="{{URL::to('showidea', array($idea->id))}}" class="thumb-img">
<img src="{{asset($ideass->idea_image)}}" alt="{{$ideass->idea_title}}">
</a>
<div class="wrap-short-detail">
<h3 class="rs acticle-title"><a class="be-fc-orange" href="{{URL::to('showidea', array($idea->id))}}"><q>{{$ideass->idea_title}}</q></a></h3>
<p class="rs tiny-desc">by <a href="#" class="fw-b fc-gray be-fc-orange">{{$ideass->User->name}}</a></p>
<p class="rs title-description">{{$ideass->idea_info}}</p>
<p class="rs project-location">
<i class="icon iLocation"></i>
{{$ideass->idea_location}}
</p>
</div>
</div>
</div>
</div>
</div><!--end: .grid_3 > .project-short-->
@endif
@endforeach
@endforeach发布于 2016-07-01 09:45:41
当您执行$ideas = Idea::paginate(15);时,您将得到一个具有许多模型的分页器,比如一个集合,因此您不能执行$ideas->communities。你必须循环所有的想法,然后得到每一个社区。
$ideas = Idea::with('communities')->paginate(15);
foreach ( $ideas as $idea ) {
foreach ( $idea->communities as $community ) {
//DO STUFF
}
}编辑
$ideas = Idea::paginate(15);包含一个包含来自DB的15条记录的集合,每个记录都与您在模型中定义的App\Community有一个belongsToMany关系。当您尝试$ideas->communities时,它无法工作,因为$ideas是一个集合,有15条记录,而communities是与单个概念模型的关系,集合不知道communities是什么。因此,当您循环foreach ( $ideas as $idea ) {时,变量$idea是一个单一的Idea模型,并且它可以使用App\Community访问belongsToMany关系,所以您可以说是$idea->communities。
https://stackoverflow.com/questions/38140854
复制相似问题