选择数据库的内容并在Laravel的View中显示

时间:2018-09-11 08:37:47

标签: database laravel

我想展示我的“天使”

这是我的控制器:

public function showangebot($firma)
{
    $dataangebot['angebotDetails'] = Angebot::where('firma',$firma)->first();
    return view('user/einzelansicht',$dataangebot);
}

这是我的观点:

<div class="card">
            <div class="card-header" id="headingOne">
                <h5 class="mb-0">
                    <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
                        {{$angebotDetails->stellenname}}
                    </button>
                </h5>
            </div>

这可以使我看到第一个对象 但我想了解所有内容,因此我在控制器中删除了“-> first()” 并在我看来使用foreach 像这样:

@foreach($angebotDetails as $angebotDetail)

它告诉我这个错误:

"Undefined property: Illuminate\Database\Eloquent\Builder::$firma (View: C:\wamp\sites\j4ylara\resources\views\user\einzelansicht.blade.php)"

我不知道问题出在哪里,因为我一直在使用它,并且一切正常,但现在不行

如果我使用-> get()代替-> first()或如果我使用此

$dataangebot['angebotDetails'] = DB::table('angebots')
    ->where('firma',$firma)
    ->get();

它告诉我:

Property [firma] does not exist on this collection instance. (View: C:\wamp\sites\j4ylara\resources\views\user\einzelansicht.blade.php)

2 个答案:

答案 0 :(得分:0)

您应该在控制器中使用 get 而不是 first 。 get函数检索一个Collection,这是您需要传递给视图并在视图中进行迭代的对象。

public function showangebot($firma)
{
   $dataangebot['angebotDetails'] = Angebot::where('firma',$firma)->get();
   return view('user/einzelansicht',$dataangebot);
}

参考:

Property [firma] does not exist on this collection instance. (View: C:\wamp\sites\j4ylara\resources\views\user\einzelansicht.blade.php)

您最有可能在 @foreach 循环之外引用 firma 。这是您应该尝试的

@foreach($angebotDetails as $angebotDetail)
    {{ $angebotDetail->firma }}
@endforeach

答案 1 :(得分:0)

这是最简单的方法。

public function showangebot($firma)
{
    $angebots = Angebot::where('firma',$firma)->get();
    return view('user/einzelansicht',compact('angebots'));
}

然后在视图文件中调用变量。

@foreach ($angebots as $angebot)
<div class="card">
            <div class="card-header" id="headingOne">
                <h5 class="mb-0">
                    <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
                        {{$angebot->stellenname}}
                    </button>
                </h5>
            </div>

@endforeach