Saya telah cuba membuat laluan ubah hala yang membawa saya ke profil pengguna. Laluan ubah hala mestilah rentetan/teks daripada pangkalan data pengguna dan harus ubah hala ke halaman profil pengguna yang sama.
Sebagai contoh, katakan pengguna1 saya mempunyai lajur yang dipanggil "editable_link" dengan nilai "abcd123" dan boleh mengakses profil melalui laluan "www.mywebsite.com/user1", jadi apabila seseorang melawati "www.mywebsite.com / "abcd123", ia harus mengubah halanya ke "www.mywebsite.com/user1"
Saya mencuba pelbagai cara tetapi tiada yang berkesan untuk saya kerana saya baru dalam pengekodan. Bolehkah seseorang memberi saya penyelesaian terbaik?
Ini adalah apa yang ada dalam web saya.php:
<?php use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Auth; use App\Http\Controllers\UserController; use App\Http\Controllers\VisitController; use App\Http\Controllers\LinkController; use Illuminate\Auth\Events\Verified; Route::get('/', function () { return view('welcome'); }); Route::get('/verified', function () { return view('verified'); }); Auth::routes(['verify' => true]); Route::group(['middleware' => 'auth', 'prefix' => 'dashboard', ], function() { Route::get('/links', [LinkController::class, 'index']); Route::get('/links/new', [LinkController::class, 'create'])->middleware('verified'); Route::post('/links/new', [LinkController::class, 'store']); Route::get('/links/{link}', [LinkController::class, 'edit']); Route::post('/links/{link}', [LinkController::class, 'update']); Route::delete('/links/{link}', [LinkController::class, 'destroy']); Route::get('/qr', [LinkController::class, 'qr']); Route::get('/settings', [UserController::class, 'settings']); Route::get('/settings/edit', [UserController::class, 'edit']); Route::get('/settings/profile', [UserController::class, 'profile']); Route::get('/settings/help', [UserController::class, 'help']); Route::post('/settings/edit', [UserController::class, 'update']); Route::post('/settings/profile', [UserController::class, 'update_avatar']); }); Route::post('/visit/{link}', [VisitController::class, 'store']); Route::get('/{user}', [UserController::class, 'show'])->name('show');
Ini yang saya nak buat:
Route::get('/qr/{editable_link}', function () { return redirect('{user}'); Route::get('/{user}', [UserController::class, 'show'])->name('show'); });
Saya boleh menghantar sebarang kod lain yang anda perlukan, terima kasih.
Anda mesti menyemak dahulu sama ada laluan yang mengandungi nilai pautan_editable wujud dalam pangkalan data. Kemudian anda tidak boleh melakukannya dalam definisi laluan kerana pangkalan data di sana belum siap.
Sudah tentu, anda boleh memilih untuk menyemak kewujudan melalui tempat pangkalan data tersedia (seperti pengawal atau perisian tengah).
Biar ada laluan ini sahaja
Kemudian dalam kaedah
UserController
show
anda perlu mencipta syarat seperti contohSebagai alternatif, anda boleh mencipta perisian tengah yang turut mengandungi syarat di atas.