Извлечение единой цитаты из БД и отображение на странице с помощью Laravel - PullRequest
0 голосов
/ 20 мая 2019

У меня есть несколько цитат в базе данных, и я пытаюсь использовать Laravel, чтобы отобразить их на странице.У меня есть кавычки, извлекаемые из контроллера, а затем передаются в представление, но я получаю сообщение об ошибке:

Undefined variable: quotes (View: C:\laragon\www\resources\views\inc\quote.blade.php) (View: C:\laragon\www\\resources\views\inc\quote.blade.php) (View: C:\laragon\www\\resources\views\inc\quote.blade.php

QuotesController.php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;

class QuotesController extends Controller
{
    public function index()
    {
        $quotes = DB::table('quotes')->get();

        return view('inc.quote', ['quotes' => $quotes]);
    }
}

quote.blade.php

<div id="MarketingQuote" class="container-fluid padding bg-light">
    <div class="row">
        <div class="col-lg-6">
            <h2>Marketing Quote of the day</h2>

            @foreach($quotes->all() as $quote)
                <li>{{$quote}}</li>
            @endforeach

            <br>
        </div>
        <div class="col-lg-6">
            <img src="img/computer.jpg" class="image-fluid" alt="">
        </div>
    </div>
</div>

Таблица миграции котировок

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateQuotesTable extends Migration
{

    public function up()
    {
        Schema::create('quotes', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->text('quote');
            $table->string('author');
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('quotes');
    }
}

Почему я получаю эту ошибку?И как сделать так, чтобы за один раз отображалась только одна цитата и менялась только при каждом обновлении страницы?

Спасибо.

1 Ответ

1 голос
/ 20 мая 2019

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

Код ниже из руководства по laravel:

Route::get('greeting', function () {
        return view('welcome', ['name' => 'Samantha']);
    });
    Hello, {{ $name }}.

изменение

@foreach($quotes->all() as $quote)
                <li>{{$quote}}</li>
@endforeach

в

@foreach($quotes as $quote)
                <li>{{$quote}}</li>
@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...