get () не работает, но First () работает. Мне нужно использовать get (), чтобы получить все мои данные - PullRequest
0 голосов
/ 02 мая 2019

У меня есть страница, на которой отображаются категории / основные сообщения, при нажатии на которую можно перейти на страницу с дополнительными сообщениями, относящимися к теме основного сообщения.Проблема, однако, в том, что когда я пытаюсь использовать -> get (), он показывает следующую ошибку: Oops an Error occured

Функция, которую я использую для получения информации, следующая (URL-адрес отображается как slug):

public function knowledge_collection($slug, Request $request){
    $knowledge_post_primary = Knowledge::where('knowledge_slug', $slug)->get();
    //dd($knowledge_post_primary);
    $knowledge_posts = Knowledge_Post::where('parent_id', $knowledge_post_primary->id)->get();
    return view('knowledge.knowledge_posts', compact('knowledge_posts', 'knowledge_post_primary'));
}

Скорее всего, это легко исправить, но я не могу его найти.Я надеюсь, что кто-то еще может и сможет мне помочь:)

Я пытался запрашивать данные разными способами и с помощью FindorFail (), но до сих пор ничего не получалось.

РЕДАКТИРОВАТЬ: Скриншот, который был запрошен. yeet

РЕДАКТИРОВАТЬ РЕДАКТИРОВАТЬ: После использования кода @Gulshans я получил следующую ошибку: shii blade error

Ответы [ 2 ]

1 голос
/ 02 мая 2019

Если вы хотите получить Knowledge_Post для знание_слуга и если есть только одна запись Знания, вы должны использовать

public function knowledge_collection($slug, Request $request){
    $knowledge_post_primary = Knowledge::where('knowledge_slug', $slug)->first();
    $knowledge_posts = Knowledge_Post::where('parent_id', $knowledge_post_primary->id)->get();
    return view('knowledge.knowledge_posts', compact('knowledge_posts', 'knowledge_post_primary'));
}

если существует много записей и вы хотите, чтобы Knowledge_Posts относился ко всем, где он будет, чтобы получить все идентификаторы, вы должны использовать pluck('id')->all() или pluck('id')->toArray()

public function knowledge_collection($slug, Request $request){
        $knowledge_post_primary_Ids = Knowledge::where('knowledge_slug', $slug)->pluck('id')->all();
        $knowledge_posts = Knowledge_Post::whereIn('parent_id', $knowledge_post_primary_Ids)->get();
        return view('knowledge.knowledge_posts', compact('knowledge_posts', 'knowledge_post_primary'));
    }
1 голос
/ 02 мая 2019

Попробуйте это для одного результата:

$knowledge_post_primary = Knowledge::where('knowledge_slug','=',$slug)->first()->toArray();
if(!empty($knowledge_post_primary)){
   $knowledge_posts = Knowledge_Post::where('parent_id', '=',$knowledge_post_primary['id'])->get();
}

Попробуйте это для нескольких результатов:

 $knowledge_post_primary = Knowledge::where('knowledge_slug','=',$slug)->get()->toArray();
 if(!empty($knowledge_post_primary)){
       foreach($knowledge_post_primary as $post_primary){
       $knowledge_posts = Knowledge_Post::where('parent_id', '=',$post_primary['id'])->get()->toArray();
          dd($knowledge_posts);
       }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...