的命名路由之类的方法,但route()->name()
的方法在处理控制器操作时提供了令人信服的替代方案,尤其是有益的。
用于重定向的action()
> action()
让我们在课程注册系统中检查一个现实世界的示例:
return redirect()->action([UserController::class, 'index']);方法提供了一种可靠且可维护的方法来重定向Laravel的处理,这在您的应用程序范围内特别有价值。 请注意,使用更通用的
<?php namespace App\Http\Controllers; use App\Models\Course; use Illuminate\Http\Request; use App\Http\Controllers\StudentController; use App\Http\Controllers\CourseController; class EnrollmentController extends Controller { public function processEnrollment(Request $request, Course $course) { try { // Enrollment process $enrollment = $course->enrollStudent( $request->user(), $request->payment_method ); if ($request->has('return_to_dashboard')) { return redirect()->action([StudentController::class, 'dashboard']) ->with('success', 'Course enrollment successful!'); } return redirect()->action([CourseController::class, 'show'], ['course' => $course->id]) ->with('success', 'Enrollment complete! Access course materials now.'); } catch (\Exception $e) { // More general exception handling return redirect()->action([CourseController::class, 'index']) ->with('error', 'Enrollment failed: ' . $e->getMessage()); } } }捕获块以改进错误处理。
>
以上是重定向到Laravel中的控制器行动的详细内容。更多信息请关注PHP中文网其他相关文章!