Почему не запускается контроллер Laravel?

Здравствуйте! Пытаюсь запустить контроллер (не переходя на страницу, а именно сам файл контроллера). Не получается.

Fatal error: Class 'App\Http\Controllers\Controller' not found ...... on line 4

<?php
 
namespace App\Http\Controllers;
 
use Illuminate\Http\Request;
 
class Site extends Controller
{
    //
}

Добавлено через 2 минуты
Контроллер создавал через artisan

dart@amd:~/***/***/***$ php artisan make:controller Site

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

Так вот, в связи с этим возник вопрос:
1) Возможно ли использовать класс DB вне фреймворка laravel в таком контексте:
$user = DB::table('users')->where('name', 'John')->first();
echo $user->name;

2) Почему этот контроллер не работает?
3)Можно ли обращаться к контроллеру напрямую?
P.S. На Laravel я перешёл только ради очень удобной реализации работы с БД, и если её можно использовать вне Laravel также, как и Eloquent ORM, буду только рад.
Как-то так:
<?php
use Illuminate\Database\DatabaseManager as DB;
$user = DB::table('users')->where('name', 'John')->first();
echo $user->name;
?>
  • Вопрос задан
  • 584 просмотра
Пригласить эксперта
Ответы на вопрос 1
@D3lphi

Пытаюсь запустить контроллер (не переходя на страницу, а именно сам файл контроллера).

Тау вот оно что! Вот почему вчера у вас ничего не работало. А я то голову сломал, что у вас там не так было. Вы бы хотя бы язык для начала подняли на приличный уровень, прежде чем на фреймворк переходить. Объясняю для особо одаренных: просто так взять и "запустить класс" (Мне стыдно, что я это говорю) нельзя! Как вам верно сказали, запуск контроллера происходит вследствие достаточно длительного процесса booting'а (запуска) фреймворка, запрос проходит несколько этапов прежде, чем дойти до контроллера. Если бы вы элементарно знали, что такое автозагрузка классов, вы бы поняли, почему возникает ошибка Fatal error: Class 'App\Http\Controllers\Controller' not found ...... on line 4. Да потому что не подключен у вас файл с этим родительским контроллером! Да и вообще! Даже, если бы у вас вс было подключено, то класс бы вот так сам по себе бы не запустился! А знаете почему? Нет, не скажу, извольте пойти и выучить основы ООП.


Можно ли обращаться к контроллеру напрямую?


НЕТ, НЕТ, НЕТ, и еще раз, НЕТ! Зачем вам вообще понадобилось это сделать???


Возможно ли использовать класс DB вне фреймворка laravel в таком контексте:


С помощью composer'а установить Eloquent ORM отдельно и работать с ним вне Laravel'а.


P.S. На Laravel я перешёл только ради очень удобной реализации работы с БД, и если её можно использовать вне Laravel также, как и Eloquent ORM, буду только рад.


Если вы используете Фреймворк только из-за ORM, и к тому же, называете ее ОЧЕНЬ УДОБНОЙ, то (не в обиду) мне вас жалко.
И да, выучите наконец язык.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы