Почему возникает ошибка «Class not found»?

Начал изучать Laravel, получил данные методом post и теперь хочу занести их в БД но выдаёт ошибку
Class 'App\Http\Controllers\DB' not found

Как правильно это сделать?
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;


class regController extends Controller
{
    public function regClient(Request $request){

      DB::table('client')->insert([
          ['fio' => $request->get("fio"), 'votes' => 0],
          ['gender' => $request->get("gender"), 'votes' => 0]
      ]);

      return  'Ок';
    }
}
  • Вопрос задан
  • 1338 просмотров
Решения вопроса 3
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
\DB::table || use DB;
Ответ написан
Комментировать
@kikimarik
Смотрите
namespace App\Http\Controllers;
Это объявляется пространство имен. А значит, что обращения к классам будут идти от него. Если вы хотите использовать класс из другого пространства имен, то у Вас 2 пути:

1) Прописать после объявления пространства имен текущего класса использование того, что вам надо
use Class\With\Namespace;
2) При попытке обратиться к классу прописываете вызов вместе с пространством имен
$obj = new \Class\With\Namespace;
$static = \Class\With\Namespace::staticMethod();
Ответ написан
Комментировать
kspitfire
@kspitfire
Webdev: PHP (Symfony, Laravel), JS (Vue.js), Go.
Потому что, по-хорошему, надо импортировать фасад DB сначала — в вашем пространстве имён не определено, что такое DB:

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
syamskoy
@syamskoy
К ответам добавлю: поставьте нормальную IDE, например PhpStorm - он вам сам подскажет ошибки, что нужно исправить, и даже за вас исправит проблему.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы