Не могу получить данные из базы данных в laravel - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть контроллер с функцией

public function caritiket(Request $request){
    $tgl=($request->tgl);
    $kota1 = ($request->kota1);
    $kota2 = ($request->kota2);
    $jumlah = (int)$request->jml_p;

    // $cek = DB::table('tb_bis_wp')->where('tanggal',$request->tgl)->where('kota1',$request->kota1)->where('kota2',$request->kota2)->count();
    // if ($cek > 0) {
        $cek1 = DB::table('tb_bis_wp')->where('tanggal',$request->tgl)->where('kota1',$request->kota1)->where('kota2',$request->kota2)->get();
        foreach ($cek1 as $cek1) {
            $a=$cek1->tanggal;
            $b=$cek1->kota1;
            $c=$cek1->kota2;
        }
        return redirect('/tampil/daftartiket/{{$a}}/{{$b}}/{{$c}}/{{$jumlah}}');}

вход из представления уже имеет то же имя, что и в функции caritiket (Request $ request), после этого ссылка маршрута на функцию daftartiket () thisэто функция daftartiket

public function daftartiket($a,$b,$c,$jumlah){
        $jml= $jumlah;
$data = DB::table('tb_bis_wp')->where('tanggal',$a)->where('kota1',$b)->where('kota2',$c)->get();


                return view('member/daftar_tiket',['data'=>$data]);
    }

В представлении у меня есть такой скрипт

 <table class="table table-bordered tabel table-striped">
                <thead class="thead-dark text-center">
                    <tr>
                        <th scope="col">Kode Rute</th>
                        <th scope="col">Waktu</th>
                        <th scope="col">Rute</th>
                        <th scope="col">Kelas</th>
                        <th scope="col">Harga</th>
                        <th scope="col">Sisa Kursi</th>
                        <th scope="col">Option</th>
                    </tr>
                </thead>
                <tbody class="text-center">
                @foreach($data as $z)
                        <tr>
                            <td>{{$z->kode_rute}}</td>
                            <td>{{$z->waktu}}</td>
                            <td>{{$z->rute}}</td>
                            <td>{{$z->kelas}}</td>
                            <td>{{$z->harga}}</td>
                            <td>{{$z->sisa_kursi}}</td>
                        <td>
                            <a href="/tampil/#/{{$z->kode_rute}}" class="btn btn-primary ">Pesan</a>
                        </td>
                        </tr>
                    @endforeach
                </tbody>
              </table>

Ответы [ 2 ]

0 голосов
/ 01 ноября 2019

Сначала вы должны понять, как писать код. См. Есть некоторые ошибки в вашем коде, если вы сохраняете request-> kota1 в $ kota1, то в тех случаях, когда условие использует $ kota1 вместо $ request-> kota1, потому что нет смысла его использовать. А в цикле foreach не используйтеодни и те же переменные, чтобы избежать конфликтов.

public function caritiket(Request $request)
{
  $tgl = $request->tgl;
  $kota1 = $request->kota1;
  $kota2 = $request->kota2;
  $jumlah = (int)$request->jml_p;

    $cek1 = DB::table('tb_bis_wp')
            ->where('tanggal',$tgl) 
            ->where('kota1',$kota1)
            ->where('kota2',$kota2)
            ->get();

          foreach ($cek1 as $cek) 
          {
            $a=$cek1->tanggal;
            $b=$cek1->kota1;
            $c=$cek1->kota2;
          }
     return redirect('/tampil/daftartiket/{{$a}}/{{$b}}/{{$c}}/{{$jumlah}}');
    }
0 голосов
/ 01 ноября 2019

После быстрого просмотра вашего кода это, вероятно, связано с этой строкой: foreach ($cek1 as $cek1) { Убедитесь, что имена разные, и посмотрите, работает ли это. Например,

<?php
foreach ($cek1 as $cek) {
    // ...
}

Обновление: полная версия функции.

<?php

namespace App\Http\Controllers;

class MyController extends Controller
{
    public function caritiket(Request $request)
    {
        $tgl = $request->tgl;
        $kota1 = $request->kota1;
        $kota2 = $request->kota2;
        $jumlah = (int) $request->jml_p;

        // You are only grabbing the last value anyway.
        $cek1 = DB::table('tb_bis_wp')
            ->where('tanggal', $tgl)
            ->where('kota1', $kota1)
            ->where('kota2', $kota2)
            ->orderBy('id', 'DESC')
            ->first();

        if ($cek1) {
            $a = $cek1->tanggal;
            $b = $cek1->kota1;
            $c = $cek1->kota2;

            // You cannot use blade syntax in the controller.
            return redirect("/tampil/daftartiket/$a/$b/$c/$jumlah");
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...