Невозможно использовать существующие таблицы для laravel Eloquent - PullRequest
0 голосов
/ 19 ноября 2018

Поэтому я пытался перейти по некоторым онлайн-ссылкам, чтобы понять, как eloquent можно использовать при определении отношений в таблице. На самом деле я хотел бы попробовать использовать существующие таблицы для создания моделей, а затем определить отношения с помощью eloquent.Сейчас я не использую миграции, так как я уже создал свои таблицы и настроил соединение и другие параметры (mysql) в файле database.php, а также в файле .env.

Follwing - это мой модальный объект для Article:

<?php

namespace App;


use Illuminate\Database\Eloquent\Model;


class Article extends Model
{

 protected $table = 'articles';

}

Поскольку я не использую никаких миграций, я указал имя своей таблицы (статьи), куда я уже вставил некоторые данные.Теперь, чтобы проверить, правильно ли работает модал, я попытался указать маршрут в web.php следующим образом:

<?php

Route::get('/', function () {

    echo Article::all();
});

Но теперь, когда я пытаюсь запустить его на сервере, выдает ошибку «Класс»Статья не найдена ". Какова проблема здесь?

Ниже приведен мой файл .env:

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:RVOuXWd9zPWrrdIEIHoezPBrfQqHPTihq4WUgXk3xjU=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=shetty@123
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=

Ниже приведен файл database.php:

<?php

return [


    'default' => env('DB_CONNECTION', 'mysql'),
    'connections' => [

        'sqlite' => [
            'driver' => 'sqlite',
            'database' => env('DB_DATABASE', database_path('database.sqlite')),
            'prefix' => '',
        ],

        'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'test'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', 'shetty@123'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

        'pgsql' => [
            'driver' => 'pgsql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '5432'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'prefix' => '',
            'schema' => 'public',
            'sslmode' => 'prefer',
        ],

        'sqlsrv' => [
            'driver' => 'sqlsrv',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '1433'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'prefix' => '',
        ],

    ],


    'migrations' => 'migrations',


    'redis' => [

        'client' => 'predis',

        'default' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => 0,
        ],

    ],

];

1 Ответ

0 голосов
/ 19 ноября 2018

Проблема в том, что ваш класс Article находится в другом пространстве имен, чем ваш файл маршрутов.

В верхней части файла маршрутов есть следующий оператор:

use App\Article;

Теперь вы можете ссылатьсякласс Article в вашем закрытии маршрута как Article :: method ();

Или, альтернативно, предшествуйте вызову all () следующим образом:

\App\Article:all();

Но убедитесь, что вы делаете один илидругой, а не оба, так как он не нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...