laravel - Laravel:如何为多个部分使用相同的帖子表单
问题描述
我想构建类似 facebook 的东西,并且我有一个表单,用户可以在其中发布内容,但我想在不同的部分使用相同的表单,例如:组、页面、个人资料。我有 PostController,它是一种接收发布请求的资源,但我需要一种方法来区分部分,以便使用正确的 section_type 和 section_id 存储数据。
// 发布模型 Post.php 命名空间应用程序; 使用 Illuminate\Database\Eloquent\Model; 类 Post 扩展模型 { 受保护的 $fillable = ['content', 'user_id']; 公共功能部分() { 返回 $this->morphTo(); } 公共功能用户() { 返回 $this->belongsTo(User::class); } 公共功能组() { 返回 $this->belongsTo(Group::class); } 公共功能页面() { 返回 $this->belongsTo(Page::class); } }
User.php 模型
类用户扩展 Authenticatable { 公共职能职位() { return $this->morphMany(Post::class, 'section'); } }
这是 PostController 和 store() 函数,此时我只有一种情况,帖子存储在 section_type App\User 中,但我还需要一种方法将其存储在 App\Group 或 App\Page 中。
公共功能存储(请求 $request) { $this->validate(request(), [ '内容' => '必需|分钟:5', ]); $user = User::find(Auth::id()); $user->posts()->create([ '内容' => $request->内容, 'user_id' => 验证::id() ]); 返回重定向('/'); }
我需要在 PostController.php 中做什么?我想也许我可以在表单中使用带有参数的发布请求,例如在群组中发布
<form method="post" action="/?group=1">
或者这个用于页面中的帖子
<form method="post" action="/?page=1">
之后使用 $request->query() 获取部分和 ID。你有其他想法吗?
解决方案
推荐阅读
- python - 自动标记两条绘制线之间的最近点?
- java - java方法有问题,因为它给了我2倍的答案
- php - 如何在 php 网站上显示 wordpress 博客文章
- python - Python 命名捕获组和反向引用问题
- python - 在python中将当前时间缩放到一个范围
- c# - C# - 如何在当前项目中使用另一个项目日志配置?
- svg - 为什么我的 SVG 背景文件不会放大?
- r - 如何在不使用 R 中的 for 循环的情况下编写此指标矩阵
- r - 找不到对象“输出”的 ShinyApp 问题
- kubernetes - AZDATA BDC CREATE 卡住了。控制容器挂起。NFS PVC 上的调度错误