首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将枢轴表视图传递给laravel

将枢轴表视图传递给laravel
EN

Stack Overflow用户
提问于 2016-07-01 08:42:22
回答 1查看 258关注 0票数 0

我在这里看到了一些问题,但都没有解决我的问题。我很困惑。我在社区和观念模式之间有很多关系。它完美地将值保存在枢轴表中,但我无法将数据提取到视图中。

思想模型:

代码语言:javascript
复制
public function communities() {
    return $this->belongsToMany('App\Community', "community_idea");
}

社区模式:

代码语言:javascript
复制
public function ideas() {
    return $this->belongsToMany('App\Idea', "community_idea");
}

商店邮政功能:

代码语言:javascript
复制
//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`错误

代码语言:javascript
复制
@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

编辑:

代码语言:javascript
复制
    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时,它显示以下数据

视图代码

代码语言:javascript
复制
@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
EN

回答 1

Stack Overflow用户

发布于 2016-07-01 09:45:41

当您执行$ideas = Idea::paginate(15);时,您将得到一个具有许多模型的分页器,比如一个集合,因此您不能执行$ideas->communities。你必须循环所有的想法,然后得到每一个社区。

代码语言:javascript
复制
$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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38140854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档