即使数据确实存在于数据库中,函数也会返回null

时间:2019-08-20 09:48:28

标签: php laravel laravel-5.8

我正试图通过Laravel中的子块显示一个包含数据库内容的页面,除了一个实例外,这是可行的。当我尝试在我们的知识库中获取详细页面时,我会不断得到404,但是在检查数据库时,我可以看到具有正确的信息,id和所有内容的数据。

  • 该网址包含:://site.com/kennisbank/{knowledge}/{knowledge_sub}
  • kennisbank =知识库
  • {knowledge} =“类别”的子弹
  • {knowledge_sub} =“发布” /详细知识页面的子弹

我用firstorFail()尝试了findorFail()where()where()->get()foreach,但是没有用。我用来获取数据的函数:

public function knowledge_single(Knowledge_Post $knowledge_post){
    dd($knowledge_post->id);
    $knowledges = Knowledge_Post::where('id', $knowledge_post->id)->firstorFail();

    return view('knowledge.details', compact('knowledges'));
}

我包括了dd,因为它甚至给出了404。视图本身:

@extends('layouts.master')
@section('content')
    <div class="container">
            <div class="row paper" style="min-height: 200px; margin-bottom: 15px;">
                    <div class="collection o__ltr" style="display: flex;">
                        <div class="collection_meta col-md-10" dir="ltr">
                            <h1 class="t__h3 c__primary" style="margin: -5px 0 2px; font-size: 25px;">{{$knowledges->knowledge_sub_title}}</h1>
                            <br />
                            <p class="paper__preview">{!!$knowledges->knowledge_sub_content !!}</p>
                            <div class="avatar">
                                <div class="avatar__photo avatars__images o__ltr">
                                    <img id="image" src="{{asset('/img/avatars/')}}/{!! str_replace(' ', '', $knowledges->username) !!}avatar.jpg" alt="{{$knowledges->username}}" class="avatar__image">
                                </div>
                                <div class="avatar__info_sub">
                                    <div>
                                        Geschreven door <span class="c__darker">{{$knowledges->username}}</span>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
            </div>
    </div>
@endsection

路线:

Route::get('/kennisbank/{knowledge}/{knowledge_sub}', ['as' => 'Kennisbank', 'uses' => 'KnowledgeController@knowledge_single']);

我希望页面显示正确的内容。

1 个答案:

答案 0 :(得分:1)

返回404,因为您已经键入Knowledge_Post,因此它使用的是route model binding,这可能配置不正确(路线或模型,或者需要自定义绑定)。修复路由模型绑定或通过完全删除typehint和/或参数来禁用它。