Неопределенная переменная контроллер ларавеллы / маршрут - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь получить данные из своей базы данных и показать их на странице индекса.

namespace Svcrs\Http\Controllers;

use Illuminate\Http\Request;
use Svcrs\Models\Reservation;

class dashboardTest extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $reservations = Reservation::all();

        return view('dashboard\index', compact('reservation'));
    }

    ........

Индекс функции должен собрать все данные.

Маршрут: Route::resource('dashboard/index', 'dashboardTestController@index');

Индекс:

<div class="col-md-3 custom-new-card">
    <div class="card paper">
      <span style="color: green;">{{ $dashboardStats['amountOfPassengers'] }} <i class="material-icons pull-right">people</i></span>
      <div class="card-row-new head">

        {{ $reservations ['departure_id']}}

      </div>
      <hr style="border-color: green;">
    </div>
  </div>
</div>

Но, похоже, это неопределенная переменная, что означает, что они плохо связаны друг с другом.Не могу найти правильный путь.

Заранее спасибо,

Ответы [ 4 ]

0 голосов
/ 11 октября 2018

Неверное имя вашего класса dashboardTestController - это имя, которое вы называете и определено dashboardTest это

namespace Svcrs\Http\Controllers;

use Illuminate\Http\Request;
use Svcrs\Models\Reservation;

class dashboardTestController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $reservations = Reservation::all();

        return view('dashboard\index', compact('reservation'));
    }
0 голосов
/ 11 октября 2018

Компактная функция должна получить имя переменной, которую вы использовали в вашем контроллере.

Итак, вы используете reservation, а ваша переменная называется reservations.

. Измените код в dashboardTest на

 public function index()
 {
        $reservations = Reservation::all();
        return view('dashboard\index', compact('reservations')); // Change over here
 }

. Вы можете прочитать о compact() функция здесь: PHP compact ()

Надеюсь, это поможет вам!

и вы должны получить доступ к переменной внутри вашего представления.

0 голосов
/ 11 октября 2018

вы присвоили $reservations = Reservation::all(); <= здесь "резервирование" </p>

вы возвращаетесь с 1) return view('dashboard\index', compact('reservation')); <= здесь "резервирование" это должно быть "резервирование" </p>

ив шаблоне лезвия 2) {{ $reservations ['departure_id']}}

3) и да, а также ->all() даст вам несколько записей, поэтому вы не сможете напрямую использовать, например, $reservations ['departure_id']

4)больше, чем $ dasboardStats не отправляется с контроллера

0 голосов
/ 11 октября 2018

У вас есть несколько проблем с кодом, во-первых, вы используете неправильную нотацию / для маршрута просмотра, и вы также отправляете неопределенную переменную с именем $reservation, я думаю, что вы ошиблись в этом и на самом делехотел отправить $reservations, это должно быть:

view('dashboard.index', compact('reservations'))

Следующая проблема заключается в том, что вы используете undefined variable name: $dasboardStats, который вы не отправляете через контроллер в представление.

Вы такжетрактовка $reservations внутри view как единого массива глубины, что неверно, $reservations - это Collection объект, который должен быть повторен для получения искомых значений.

Также имя вашего контроллера неверно внутри routes

...