Foreach не работает в моем представлении в laravel 5.6 - PullRequest
0 голосов
/ 25 сентября 2018
public function getValues(Request $request){
            $typ=$request->get('typ');
            $stellentyp=$request->get('stellentyp');
            $bereich=$request->get('bereich');
            $abschluss=$request->get('abschluss');
            $user = DB::table('users')->get();
            $angebots = DB::table('angebots') ->orderBy('stellenname', 'asc');
            if(!empty($request->get('stellentyp'))){
                $angebots->where('stellentyp', $stellentyp);
            }
            $angebots->get();
            $row = $angebots->count();
            return view('user/angebots', compact('typ', 'stellentyp', 'bereich', 'abschluss', 'row', 'angebots', 'user'));
        }

это мой контроллер

{{$row}} Angebote insgesamt
    <div class="row">
        @foreach ($angebots as $angebot)
            <div class="col-12 col-md-6 col-lg-4 pt-4">
                <div class="card offer-card">
                    <div class="card-image">
                        <img class="img-fluid" src="{{ asset('uploads/avatars/' . $user[$angebot->firma -1]->avatar) }}">
                    </div>
                    <div class="card-body">
                        <h4 class="text-j4y-dark praktikumstitel">{{ $angebot->stellenname }}</h4>
                        <a href="{{ route('angebot.details',['id'=>$angebot->firma]) }}">Jetzt mehr anzeigen »</a>
                    </div>
                </div>
            </div>
        @endforeach
    </div>

и это мой взгляд

но я получил это сообщение об ошибке: Неопределенное свойство: Illuminate \ Database \ MySqlConnection :: $ firma (Представление: C: \ wamp \ sites \ j4ylara \ resources \ views \ user \ angebots.blade.php)

, если я добавлю в свой первый оператор get, вот так

$angebots = DB::table('angebots') ->orderBy('stellenname', 'asc')->get();

но тогда фильтр не работает

Я не знаю, как я могу просмотреть свои результаты

Я знаю только так

{{$angebot[1]->stellenname}}

но я хочу, чтобы все моирезультаты, поэтому я использую foreach, но он не работает

кто-нибудь знает почему?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Вы отправляете Строителя в $angebot.Попробуйте поместить результаты в переменную.

public function getValues(Request $request){
    $typ=$request->get('typ');
    $stellentyp=$request->get('stellentyp');
    $bereich=$request->get('bereich');
    $abschluss=$request->get('abschluss');

    $user = DB::table('users')->get();
    $angebots = DB::table('angebots') ->orderBy('stellenname', 'asc');
    if(!empty($request->get('stellentyp'))){
        $angebots->where('stellentyp', $stellentyp);
    }
    $angebots = $angebots->get();
    $row = $angebots->count(); //this will not cause an issue since the Collection has a count method

    return view('user/angebots', compact('typ', 'stellentyp', 'bereich', 'abschluss', 'row', 'angebots', 'user'));
    }
0 голосов
/ 25 сентября 2018

В следующем фрагменте

$angebots = DB::table('angebots') ->orderBy('stellenname', 'asc');
if(!empty($request->get('stellentyp'))){
    $angebots->where('stellentyp', $stellentyp);
}
$angebots->get();

Вы делаете $angebots->get(), что возвращает результаты вашего запроса.Вам необходимо присвоить результаты вашего запроса переменной и передать ее в ваше представление.Вы могли бы сделать что-то вроде этого:

$angebots = $angebots->get();

Что бы присвоить результат запроса $angebots, а затем вы могли бы использовать его в своем представлении.

Лично я бы рассмотрел переименование$angebots до $angebotsQuery или что-то подобное, а затем сделайте следующее:

$angebotsQuery = DB::table('angebots') ->orderBy('stellenname', 'asc');
if(! empty($request->get('stellentyp'))){
    $angebotsQuery->where('stellentyp', $stellentyp);
}
$angebots = $angebotsQuery->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...