#php #laravel
#php #laravel
Вопрос:
Я новичок в laravel, я пытаюсь запросить определенную таблицу в моей БД. У меня есть только 1 таблица данных и стандартные таблицы аутентификации пользователя. Я получаю сообщение об ошибке: BADMETHOD Callexception вызывает неопределенный метод App Figures::table().
Модель
namespace App;
use IlluminateDatabaseEloquentModel;
class Figures extends Model
{
}
контроллер
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppFigures;
class figuresController extends Controller
public function figurespag2() {
$dummyDetails = Figures::table('figures')->where('name', 'batman');
return view ( 'pagination2.index' )->withUsers($dummyDetails);
}
маршрут
Route::get ( '/pagination2', 'figuresController@figurespag2' );
Я знаю, что это будет что-то очевидное, но я новичок в этом.
Ответ №1:
это неправильно
$dummyDetails = Figures::table('figures')->where('name', 'batman');
Метод 1———- laravel eloquent
Модель
namespace App;
use IlluminateDatabaseEloquentModel;
class Figures extends Model
{
protected $table = 'figures';
}
Контроллер
$dummyDetails = Figures::where('name', 'batman')->get();
и
Метод 2 ———- laravel Query Builder
$dummyDetails = DB::table('figures')->where('name', 'batman')->get();
Комментарии:
1. Спасибо, это сработало. Мне нужно больше взглянуть на модели, поскольку я думал, что модель определяет взаимодействие на уровне БД, которое, как я вижу, неверно.
Ответ №2:
Используйте это, вам не нужно определять имя таблицы
public function figurespag2() {
$dummyDetails = Figures::where('name', 'batman')->get();
return view ( 'pagination2.index' )->withUsers($dummyDetails);
}
Комментарии:
1. Спасибо за объяснение, это помогло мне понять взаимосвязь модели с запросом и контроллером. Спасибо.
Ответ №3:
Сначала вам может понадобиться знать правила модели laravel.
Если вы создаете имя таблицы типа «цифры» (множественное число), вам нужно создать ее модель по цифре (единственное число).
если вы создаете таблицу, отличную от этого правила, тогда вы должны указать имя таблицы в модели, подобной этой.
защищенный $table = «имя_таблицы»;
вы можете получить доступ к таблице с условием where в контроллере следующим образом.
public function figurespag2() {
$dummyDetails = Figure::where('name', 'batman')->get();
return view ( 'pagination2.index' )->withUsers($dummyDetails);
}
Надеюсь, это может вам помочь.
Комментарии:
1. Спасибо за дополнительные разъяснения. Я новичок в Laravel и привыкаю к подходу MVC.