1
0
mirror of https://github.com/flarum/core.git synced 2025-08-14 12:24:33 +02:00

Use new Model extender

This commit is contained in:
Franz Liedke
2020-04-24 15:56:18 +02:00
parent f022018be3
commit 649f71d25a
2 changed files with 5 additions and 15 deletions

View File

@@ -8,12 +8,14 @@
*/
use Flarum\Api\Event\Serializing;
use Flarum\Discussion\Discussion;
use Flarum\Discussion\Event\Saving;
use Flarum\Extend;
use Flarum\Tags\Access;
use Flarum\Tags\Api\Controller;
use Flarum\Tags\Content;
use Flarum\Tags\Listener;
use Flarum\Tags\Tag;
use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Contracts\View\Factory;
@@ -35,6 +37,9 @@ return [
->patch('/tags/{id}', 'tags.update', Controller\UpdateTagController::class)
->delete('/tags/{id}', 'tags.delete', Controller\DeleteTagController::class),
(new Extend\Model(Discussion::class))
->belongsToMany('tags', Tag::class, 'discussion_tag'),
function (Dispatcher $events, Factory $view) {
$events->subscribe(Listener\AddDiscussionTagsRelationship::class);

View File

@@ -13,10 +13,7 @@ use Flarum\Api\Controller;
use Flarum\Api\Event\Serializing;
use Flarum\Api\Event\WillGetData;
use Flarum\Api\Serializer\DiscussionSerializer;
use Flarum\Discussion\Discussion;
use Flarum\Event\GetApiRelationship;
use Flarum\Event\GetModelRelationship;
use Flarum\Tags\Tag;
use Illuminate\Contracts\Events\Dispatcher;
class AddDiscussionTagsRelationship
@@ -26,23 +23,11 @@ class AddDiscussionTagsRelationship
*/
public function subscribe(Dispatcher $events)
{
$events->listen(GetModelRelationship::class, [$this, 'getModelRelationship']);
$events->listen(GetApiRelationship::class, [$this, 'getApiRelationship']);
$events->listen(WillGetData::class, [$this, 'includeTagsRelationship']);
$events->listen(Serializing::class, [$this, 'prepareApiAttributes']);
}
/**
* @param GetModelRelationship $event
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany|null
*/
public function getModelRelationship(GetModelRelationship $event)
{
if ($event->isRelationship(Discussion::class, 'tags')) {
return $event->model->belongsToMany(Tag::class, 'discussion_tag', null, null, null, null, 'tags');
}
}
/**
* @param GetApiRelationship $event
* @return \Tobscure\JsonApi\Relationship|null