Laravel未定义偏移

时间:2018-10-16 12:35:43

标签: laravel

我有一个向我展示用户优惠的网站:

使用foreach,我可以看到所有报价

@foreach ($praktikas as $praktika)
    <div class="col-12 col-md-6 col-lg-4 pt-4 card-wrapper">
        <div class="card offer-card">
            <div class="card-image">
                <img class="img-fluid" alt="Logo der Firma: {{$user[$praktika->firma -1]->avatar}}" src="{{ asset('uploads/avatars/' . $user[$praktika->firma -1]->avatar) }}">
            </div>

            <div class="card-body">
                <h4 class="text-dark">{{ $praktika->stellenname }}</h4>
                <a href="{{ route('angebot.details',['id'=>$praktika->firma]) }}">Jetzt mehr anzeigen »</a>
            </div>
        </div>
    </div>
@endforeach

现在我有一个ID为88的新用户,但它称我为未定义的offset: 87

我知道问题出在哪里,是因为这:

$user[$praktika->firma -1]->avatar

找不到ID为88的用户

如果我想显示这样的用户:

$user[83]->avatar

一切正常,但没有显示ID为88的用户,但在我的数据库中可以看到该用户!

我不知道该怎么办?因为它一直都有效,现在我不知道发生了什么。

这是我的控制器:

public function showpraktika()
{
    $praktikas = DB::table('angebots')
        ->where('stellentyp', 'Praktikum')
        ->orderBy('stellenname', 'asc')
        ->get();
    $row = DB::table('angebots')
        ->where('stellentyp', 'Praktikum')
        ->count();
    $user = DB::table('users')->get();
    return view('user/praktika', ['praktikas' => $praktikas, 'row' => $row, 'user' => $user]);
}

3 个答案:

答案 0 :(得分:4)

当您编写$ user [88]时,您不是在寻找id = 88的用户,而是在寻找索引。

如果用户是Laravel集合,请使用:

$user->firstWhere('id', $praktika->firma -1)->avatar;

在这里您可以看到Laravel中所有可用的方法,这非常有用:https://laravel.com/docs/5.7/collections#available-methods

答案 1 :(得分:0)

要通过ID获取用户,请使用_id

答案 2 :(得分:0)

您在此处通过索引(88)访问@material-ui/core/${item}数组。

$user[]

,但您的<img class="img-fluid" alt="Logo der Firma: {{$user[$praktika->firma -1]->avatar}}" src="{{ asset('uploads/avatars/' . $user[$praktika->firma -1]->avatar) }}"> 键中的键不等于您的用户ID。它是零索引数组。

所以您可以做的是

控制器

$user[]