Laravel:如何在多个部分使用相同的帖子形式

时间:2018-09-04 10:47:30

标签: laravel

我想构建类似facebook的东西,我有一个表单,用户可以在其中发布内容,但是我想在不同的部分使用相同的表单,例如:组,页面,个人资料。 我有PostController,它是一种接收发布请求的资源,但是我需要一种区分部分的方式,以便使用正确的section_type和section_id存储数据。

// Post Model Post.php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{

    protected $fillable = ['content', 'user_id'];

    public function section()
    {
        return $this->morphTo();
    }

    public function user()
    {
        return $this->belongsTo(User::class);
    }

    public function group()
    {
        return $this->belongsTo(Group::class);
    }

    public function page()
    {
        return $this->belongsTo(Page::class);
    }
}

User.php模型

class User extends Authenticatable
{

    public function posts()
    {
        return $this->morphMany(Post::class, 'section');
    }
}

这是PostController和store()函数,此时只有一种情况,即将帖子存储在section_type App \ User中,但是我还需要一种将其存储在App \ Group或App \ Page中的方法

    public function store(Request $request)
    {

        $this->validate(request(),
            [
                'content' => 'required|min:5',
            ]);

        $user = User::find(Auth::id());

        $user->posts()->create([
            'content' => $request->content,
            'user_id' => Auth::id()
        ]);

        return redirect('/');
    }

我需要在PostController.php中做什么? 我以为也许可以在表单中使用带有参数的发帖请求,像这样在组中发帖

<form method="post" action="/?group=1">

或针对页面中的帖子

<form method="post" action="/?page=1">

然后使用$ request-> query()获取部分和ID。您还有其他想法吗?

0 个答案:

没有答案