您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
project-create相关的路由及controller定义(laravel-breeze)
发布时间:2024-10-29 19:39:23编辑:雪饮阅读()
-
project-create相关的路由
上篇中封装了Y:\root\example-app\resources\js\Pages\Project\Partials\UpdateProjectInformationForm.vue
这个form组件。
那么我们需要调用这个form组件才能有意义。
假定我们要做一个创建项目的页面。当然我们也考研参考之前的Y:\root\example-app\resources\js\Pages\Profile\Edit.vue
所以我们也造一个Y:\root\example-app\resources\js\Pages\Project\ Edit.vue
而这里则调用了上面我们封装的form组件Y:\root\example-app\resources\js\Pages\Project\Partials\UpdateProjectInformationForm.vue,如:
<script setup>
import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout.vue';
import UpdateProjectInformationForm from './Partials/UpdateProjectInformationForm.vue';
import { Head } from '@inertiajs/vue3';
defineProps({
mustVerifyEmail: {
type: Boolean,
},
status: {
type: String,
},
});
</script>
<template>
<Head title="Project-Create" />
<AuthenticatedLayout>
<template #header>
<h2
class="text-xl font-semibold leading-tight text-gray-800 dark:text-gray-200"
>
Project-Create
</h2>
</template>
<div class="py-12">
<div class="mx-auto max-w-7xl space-y-6 sm:px-6 lg:px-8">
<UpdateProjectInformationForm
:must-verify-email="mustVerifyEmail"
:status="status"
class="max-w-xl"
/>
</div>
</div>
</AuthenticatedLayout>
</template>
有了project-create的界面edit我们就要它显示在浏览器访问的对应url中。
于是有路由定义
Y:\root\example-app\routes\web.php如:
Route::get('/project', [ProjectController::class, 'edit'])->name('profile.edit');
于这个路由组中
Route::middleware('auth')->group(function () {
}
project-create相关的controller定义
其实这个应该定义在路由之前,毕竟这里路由硬是调用controller,而不是反过来的。
那么定义controller如
Y:\root\example-app\app\Http\Controllers\ProjectController.php:
<?php
namespace App\Http\Controllers;
use App\Http\Requests\ProfileUpdateRequest;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Redirect;
use Inertia\Inertia;
use Inertia\Response;
class ProjectController extends Controller
{
/**
* Display the user's profile form.
*/
public function edit(Request $request): Response
{
return Inertia::render('Project/Edit', [
'mustVerifyEmail' => $request->user() instanceof MustVerifyEmail,
'status' => session('status'),
]);
}
/**
* Update the user's profile information.
*/
public function update(ProfileUpdateRequest $request): RedirectResponse
{
$request->user()->fill($request->validated());
if ($request->user()->isDirty('email')) {
$request->user()->email_verified_at = null;
}
$request->user()->save();
return Redirect::route('profile.edit');
}
/**
* Delete the user's account.
*/
public function destroy(Request $request): RedirectResponse
{
$request->validate([
'password' => ['required', 'current_password'],
]);
$user = $request->user();
Auth::logout();
$user->delete();
$request->session()->invalidate();
$request->session()->regenerateToken();
return Redirect::to('/');
}
}
当然这里还有多余的代码。其实这里暂时只需要edit方法即可,这个暂时先不管。
最后通过浏览器访问我们的路由http://localhost/project
这样便实现了从form组件到界面调用,再到路由去调用controller。
本期词汇
inertia 惰性 惯性
controller 控制器;管理员
Laravel 一个免费的开源 PHP Web 框架
关键字词:laravel,路由,控制器
相关文章
- 前端form组件的介绍(laravel11中的breeze的form实现)
- vite刷新慢的解决办法(laravel的sail部署中mysql容器
- 创建project相关的视图与数据库设计(laravel入门套件B
- MVC介绍及创建数据模型(laravel在命令行中创建模型)
- 连接数据库,以及users表相关的数据结构(了解laravel的Br
- 开启注册登陆功能(解决laravel安装Breeze后没有注册、
- laravel环境变量的原理、优势及项目配置
- docker开发环境搭建(docker环境下创建laravel)
- 课程介绍(laravel9,laravel10,laravel11)
- 7-5 gii工具之控制器生成器