【问题标题】:Foreach doesnt work in my View in laravel 5.6Foreach 在我的 laravel 5.6 视图中不起作用
【发布时间】:2019-02-28 20:42:21
【问题描述】:
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 但它不起作用

有人知道为什么吗?

【问题讨论】:

  • dd($angebots); 给你什么?我不会测试它,但是如果你等着订购你的 ORM 构建呢?所以忘记$angebots = DB::table('angebots') ;然后$angebots-&gt;orderBy('stellenname', 'asc')-&gt;get();的顺序

标签: laravel foreach view


【解决方案1】:

您将通过$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'));
    }

【讨论】:

    【解决方案2】:

    在下面的sn-p中

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

    您正在执行$angebots-&gt;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();
    

    【讨论】:

      猜你喜欢
      • 2018-09-28
      • 2019-09-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-28
      • 2018-07-30
      • 1970-01-01
      • 2018-12-14
      • 2013-04-14
      相关资源
      最近更新 更多