Reputation: 25
I'm having the issue when loading the /usarios/create (/user/create) and being return an error of:
BadMethodCallException
Method App\Http\Controllers\UserController::create does not exist.
Route web file:
Auth::routes();
Route::get('/', 'HomeController@index')->name('home');
Route::resource('usuarios', 'UserController@index');
UserController:
<?php
namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function index()
{
$users = User::all( );
return view( 'usuarios.index', ['users' => $users]);
}
}
function create()
{
return view ('usuarios.create');
}
function store(Request $request)
{
}
function show($id)
{
}
function edit($id)
{
}
function update(Request $request, $id)
{
}
function destroy($id)
{
}
My version Laravel is 6.0
Any help? Thanks!
Upvotes: 0
Views: 11315
Reputation: 979
In Route::resource()
has 7 methods bind.
If you want to use Route::resource()
then you should pass two params, base path and Controller class. see
SO you should pass like this.
Route::resource('usuarios', 'UserController');
Notice that:
Route::resource('usuarios', 'UserController');
second parameter is a controller class name.
where you are using Route::resource('usuarios', 'UserController@index');
is not a class, passing index method exits in UserController class.
Upvotes: 2
Reputation: 3299
You have an extra "}" on your controller, right below index method.
And you'll need to close the class, adding a } after destroy method.
Upvotes: 4