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 (View: C: \ wamp \ sites \ j4ylara \ resources \ views \ user \ angebots.blade.php)

Если я поставлю свое первое заявление так, как это

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

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

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

Я знаю только этот способ

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

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

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

0
MonaMuhr 25 Сен 2018 в 12:13

2 ответа

Лучший ответ

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

$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();
1
Jonathon 25 Сен 2018 в 09:21

Вы отправляете Строителя в $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'));
    }
1
N69S 25 Сен 2018 в 09:23