I have a problem in route to access the Controller, i have copied laravel project version 5 to my project in laravel version 8, i have change the file RouteServiceProvider.php in my laravel project in to this
protected $namespace = 'App\Http\Controllers';
public function boot()
{
$this->configureRateLimiting();
$this->routes(function () {
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
});
}
but still not working, the error message says "Illuminate\Contracts\Container\BindingResolutionException Target class [UserController] does not exist."
this is the web.php code
<?php
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('welcome');
});
// Auth::routes();
// Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::get('/', [HomeController::class, 'index'])->name('home');
Auth::routes();
Route::group(['middleware' => 'web'], function(){
Route::get('user/profil', 'App\Http\Controllers\UserController@profil')->name('user.profil');
Route::patch('user/{id}/change', 'App\Http\Controllers\UserController@changeProfil');
Route::get('transaksi/baru', 'App\Http\Controllers\PenjualanDetailController@newSession')->name('transaksi.new');
Route::get('transaksi/{id}/data', 'App\Http\Controllers\PenjualanDetailController@listData')->name('transaksi.data');
Route::get('transaksi/cetaknota', 'App\Http\Controllers\PenjualanDetailController@printNota')->name('transaksi.cetak');
Route::get('transaksi/notapdf', 'App\Http\Controllers\PenjualanDetailController@notaPDF')->name('transaksi.pdf');
Route::post('transaksi/simpan', 'App\Http\Controllers\PenjualanDetailController@saveData');
Route::get('transaksi/loadform/{diskon}/{total}/{diterima}', 'App\Http\Controllers\PenjualanDetailController@loadForm');
Route::resource('transaksi', 'App\Http\Controllers\PenjualanDetailController');
});
this is for example the controller
<?php
namespace App\Http\Controllers;
use \Illuminate\Http\Response;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use Auth;
use Hash;
class UserController extends Controller
{
public function index()
{
return view('user.index');
}
public function listData()
{
$user = User::where('level', '!=', 1)->orderBy('id', 'desc')->get();
$no = 0;
$data = array();
foreach($user as $list){
$no ++;
$row = array();
$row[] = $no;
$row[] = $list->name;
$row[] = $list->email;
$row[] = '<div class="btn-group">
<a onclick="editForm('.$list->id.')" class="btn btn-primary btn-sm"><i class="fa fa-pencil"></i></a>
<a onclick="deleteData('.$list->id.')" class="btn btn-danger btn-sm"><i class="fa fa-trash"></i></a></div>';
$data[] = $row;
}
$output = array("data" => $data);
return response()->json($output);
}
public function store(Request $request)
{
$user = new User;
$user->name = $request['nama'];
$user->email = $request['email'];
$user->password = bcrypt($request['password']);
$user->level = 2;
$user->foto = "user.png";
$user->save();
}
public function edit($id)
{
$user = User::find($id);
echo json_encode($user);
}
public function update(Request $request, $id)
{
$user = User::find($id);
$user->name = $request['nama'];
$user->email = $request['email'];
if(!empty($request['password'])) $user->password = bcrypt($request['password']);
$user->update();
}
public function destroy($id)
{
$user = User::find($id);
$user->delete();
}
public function profil()
{
$user = Auth::user();
return view('user.profil', compact('user'));
}
public function changeProfil(Request $request, $id)
{
$msg = "succcess";
$user = User::find($id);
if(!empty($request['password'])){
if(Hash::check($request['passwordlama'], $user->password)){
$user->password = bcrypt($request['password']);
}else{
$msg = 'error';
}
}
if ($request->hasFile('foto')) {
$file = $request->file('foto');
$nama_gambar = "fotouser_".$id.".".$file->getClientOriginalExtension();
$lokasi = public_path('images');
$file->move($lokasi, $nama_gambar);
$user->foto = $nama_gambar;
$datagambar = $nama_gambar;
}else{
$datagambar = $user->foto;
}
$user->update();
echo json_encode(array('msg'=>$msg, 'url'=> asset('public/images/'.$datagambar)));
}
}
this is the blade view for user.profil.blade for example
@extends('layouts.app')
@section('title')
Edit Profil
@endsection
@section('breadcrumb')
@parent
<li>user</li>
<li>edit profil</li>
@endsection
@section('content')
<div class="row">
<div class="col-xs-12">
<div class="box">
<form class="form form-horizontal" data-toggle="validator" method="post" enctype="multipart/form-data">
{{ csrf_field() }} {{ method_field('PATCH') }}
<div class="box-body">
<div class="alert alert-info alert-dismissible" style="display:none">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<i class="icon fa fa-check"></i>
Perubahan berhasil disimpan.
</div>
<div class="form-group">
<label for="foto" class="col-md-2 control-label">Foto Profil</label>
<div class="col-md-4">
<input id="foto" type="file" class="form-control" name="foto">
<br><div class="tampil-foto"> <img src="{{ asset('public/images/'.Auth::user()->foto) }}" width="200"></div>
</div>
</div>
<div class="form-group">
<label for="passwordlama" class="col-md-2 control-label">Password Lama</label>
<div class="col-md-6">
<input id="passwordlama" type="password" class="form-control" name="passwordlama">
<span class="help-block with-errors"></span>
</div>
</div>
<div class="form-group">
<label for="password" class="col-md-2 control-label">Password</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control" name="password">
<span class="help-block with-errors"></span>
</div>
</div>
<div class="form-group">
<label for="password1" class="col-md-2 control-label">Ulang Password</label>
<div class="col-md-6">
<input id="password1" type="password" class="form-control" data-match="#password" name="password1">
<span class="help-block with-errors"></span>
</div>
</div>
</div>
<div class="box-footer">
<button type="submit" class="btn btn-primary pull-right"><i class="fa fa-floppy-o"></i> Simpan Perubahan</button>
</div>
</form>
</div>
</div>
</div>
@endsection
@section('script')
<script type="text/javascript">
$(function(){
$('#passwordlama').keyup(function(){
if($(this).val() != "") $('#password, #password1').attr('required', true);
else $('#password, #password1').attr('required', false);
});
$('.form').validator().on('submit', function(e){
if(!e.isDefaultPrevented()){
$.ajax({
url : "{{ Auth::user()->id }}/change",
type : "POST",
data : new FormData($(".form")[0]),
dataType: 'JSON',
async: false,
processData: false,
contentType: false,
success : function(data){
if(data.msg == "error"){
alert('Password lama salah!');
$('#passwordlama').focus().select();
}else{
d = new Date();
$('.alert').css('display', 'block').delay(2000).fadeOut();
$('.tampil-foto img, .user-image, .user-header img').attr('src', data.url+'?'+d.getTime());
}
},
error : function(){
alert("Tidak dapat menyimpan data!");
}
});
return false;
}
});
});
</script>
@endsection