App\Models\Forum\Topic::createNew PHP Method

createNew() public static method

public static createNew ( $forum, $params, $poll = null )
    public static function createNew($forum, $params, $poll = null)
    {
        $topic = new static(['forum_id' => $forum->forum_id, 'topic_time' => Carbon::now(), 'topic_title' => $params['title'] ?? null, 'topic_poster' => $params['user']->user_id, 'topic_first_poster_name' => $params['user']->username, 'topic_first_poster_colour' => $params['user']->user_colour]);
        DB::transaction(function () use($forum, $topic, $params, $poll) {
            $topic->save();
            $topic->addPost($params['user'], $params['body']);
            if ($poll !== null) {
                $topic->poll($poll)->save();
            }
            if (($params['cover'] ?? null) !== null) {
                $params['cover']->topic()->associate($topic);
                $params['cover']->save();
            }
        });
        return $topic->fresh();
    }

Usage Example

Esempio n. 1
0
 public function store(HttpRequest $request, $forum_id)
 {
     $this->validate($request, ['title' => 'required', 'body' => 'required']);
     $forum = Forum::findOrFail($forum_id);
     $this->authorizePost($forum, null);
     $topic = Topic::createNew(['forum' => $forum, 'title' => $request->input('title'), 'poster' => Auth::user(), 'body' => $request->input('body'), 'notifyReplies' => false, 'cover' => TopicCover::findForUse(presence($request->input('cover_id')), Auth::user())]);
     Event::fire(new TopicWasCreated($topic, $topic->posts->last(), Auth::user()));
     return ujs_redirect(route('forum.topics.show', $topic));
 }
All Usage Examples Of App\Models\Forum\Topic::createNew