第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel Collection 通過鍵獲取值之一

Laravel Collection 通過鍵獲取值之一

PHP
Qyouu 2021-12-03 18:48:03
我是 Laravel 的新手,我試圖通過從另一個集合中檢索到的一個 ID 來獲取一個集合中的一個值。我的函數(shù)返回 2 個集合:public function index(){    $category = BlogCategory::all(['id', 'name']);            $post = BlogPost::orderBy('id', 'desc')->take(14)->get();    return view('blog.index', ['posts' => $post],  ['categories' => $category]);}在 foreach 循環(huán)中,我從集合中獲取值:    @foreach($posts as $post)     @if($loop->iteration > 2)        <div class="col-sm-6 col-md-3 d-flex justify-content-center other-post">          <a href="#">             <img src="#" alt="">             <p class="post-category">{{ $categories->get($post->category_id) }}</p>             <h5 class="post-title">{{ $post->title }}</h5>                                  </a>         </div>      @endif     @endforeach我部分得到了如下圖所示的結(jié)果,但我只想得到名稱。這是我想弄清楚的代碼 {{ $categories->get($post->category_id) }}如果有更好或更正確的方法,請告訴我。博客文章遷移:public function up(){    Schema::create('blog_posts', function (Blueprint $table) {        $table->bigIncrements('id');        $table->string('title');        $table->longText('content');        $table->mediumText('slug');        $table->bigInteger('author_id')->unsigned();        $table->bigInteger('category_id')->unsigned();        $table->timestamps();        $table->foreign('author_id')->references('id')->on('blog_authors');        $table->foreign('category_id')->references('id')->on('blog_categories');    });}
查看完整描述

3 回答

?
jeck貓

TA貢獻1909條經(jīng)驗 獲得超7個贊

您應該建立BlogPost和BlogCategory模型之間的關(guān)系,看到您已經(jīng)category_id在BlogPost模型中有一個字段,即:


在BlogPost型號中:


public function category(){

   return $this->belongsTo(\App\BlogCategory::class);

}

在BlogCategory型號中:


public function posts(){

   return $this->hasMany(\App\BlogPost::class);

}

接下來,您可以渴望的負載 categories與$posts在你的控制器只有兩個疑問:


public function index()

{        

    $posts = BlogPost::with('category')->orderBy('id', 'desc')->take(14)->get();

    return view('blog.index', compact('posts'));

}

然后在您的視圖中,您可以$post->category直接訪問每個對象,因為在控制器中加載了熱切:


@foreach($posts as $post)

 @if($loop->iteration > 2)

    <div class="col-sm-6 col-md-3 d-flex justify-content-center other-post">

      <a href="#">

         <img src="#" alt="">

         <p class="post-category">{{ $post->category->name }}</p>

         <h5 class="post-title">{{ $post->title }}</h5>                        

      </a>

     </div>

  @endif

 @endforeach


查看完整回答
反對 回復 2021-12-03
?
婷婷同學_

TA貢獻1844條經(jīng)驗 獲得超8個贊

它可以優(yōu)化,首先,您需要從類別到帖子建立一對多的關(guān)系


首先:確保您在帖子遷移category_id列中有


第二:打開類別模型并編寫此方法,這將允許您獲取屬于該類別的帖子


public function posts(){

   return $this->hasMany(\App\Post::class);

}

第三:打開店鋪模型并編寫此方法,這將允許您獲取屬于帖子的類別


public function catgeory(){

   return $this->belongsTo(\App\Category::class);

}

最后:您將像這樣編輯您的視圖


@foreach($posts as $post)

    <div class="col-sm-6 col-md-3 d-flex justify-content-center other-post">

      <a href="#">

         <img src="#" alt="">

         <p class="post-category">{{ $post->category->title }}</p>

         <h5 class="post-title">{{ $post->title }}</h5>                        

      </a>

     </div>

 @endforeach

當然,您不會再在控制器中調(diào)用類別


public function index()

{        

  $post = BlogPost::orderBy('id', 'desc')->take(14)

          ->with('category')->get();

  return view('blog.index', ['posts' => $post]);

}


查看完整回答
反對 回復 2021-12-03
?
慕容708150

TA貢獻1831條經(jīng)驗 獲得超4個贊

此行為$categories->get($post->category_id)您返回一個數(shù)組category,因此這里的解決方案如下所示:

{{ $categories->get($post->category_id)['name'] }}


查看完整回答
反對 回復 2021-12-03
  • 3 回答
  • 0 關(guān)注
  • 317 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號