mirror of
https://github.com/flarum/core.git
synced 2025-08-16 05:14:20 +02:00
Use new Model extender
This commit is contained in:
@@ -8,12 +8,14 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
use Flarum\Api\Event\Serializing;
|
use Flarum\Api\Event\Serializing;
|
||||||
|
use Flarum\Discussion\Discussion;
|
||||||
use Flarum\Discussion\Event\Saving;
|
use Flarum\Discussion\Event\Saving;
|
||||||
use Flarum\Extend;
|
use Flarum\Extend;
|
||||||
use Flarum\Tags\Access;
|
use Flarum\Tags\Access;
|
||||||
use Flarum\Tags\Api\Controller;
|
use Flarum\Tags\Api\Controller;
|
||||||
use Flarum\Tags\Content;
|
use Flarum\Tags\Content;
|
||||||
use Flarum\Tags\Listener;
|
use Flarum\Tags\Listener;
|
||||||
|
use Flarum\Tags\Tag;
|
||||||
use Illuminate\Contracts\Events\Dispatcher;
|
use Illuminate\Contracts\Events\Dispatcher;
|
||||||
use Illuminate\Contracts\View\Factory;
|
use Illuminate\Contracts\View\Factory;
|
||||||
|
|
||||||
@@ -35,6 +37,9 @@ return [
|
|||||||
->patch('/tags/{id}', 'tags.update', Controller\UpdateTagController::class)
|
->patch('/tags/{id}', 'tags.update', Controller\UpdateTagController::class)
|
||||||
->delete('/tags/{id}', 'tags.delete', Controller\DeleteTagController::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) {
|
function (Dispatcher $events, Factory $view) {
|
||||||
$events->subscribe(Listener\AddDiscussionTagsRelationship::class);
|
$events->subscribe(Listener\AddDiscussionTagsRelationship::class);
|
||||||
|
|
||||||
|
@@ -13,10 +13,7 @@ use Flarum\Api\Controller;
|
|||||||
use Flarum\Api\Event\Serializing;
|
use Flarum\Api\Event\Serializing;
|
||||||
use Flarum\Api\Event\WillGetData;
|
use Flarum\Api\Event\WillGetData;
|
||||||
use Flarum\Api\Serializer\DiscussionSerializer;
|
use Flarum\Api\Serializer\DiscussionSerializer;
|
||||||
use Flarum\Discussion\Discussion;
|
|
||||||
use Flarum\Event\GetApiRelationship;
|
use Flarum\Event\GetApiRelationship;
|
||||||
use Flarum\Event\GetModelRelationship;
|
|
||||||
use Flarum\Tags\Tag;
|
|
||||||
use Illuminate\Contracts\Events\Dispatcher;
|
use Illuminate\Contracts\Events\Dispatcher;
|
||||||
|
|
||||||
class AddDiscussionTagsRelationship
|
class AddDiscussionTagsRelationship
|
||||||
@@ -26,23 +23,11 @@ class AddDiscussionTagsRelationship
|
|||||||
*/
|
*/
|
||||||
public function subscribe(Dispatcher $events)
|
public function subscribe(Dispatcher $events)
|
||||||
{
|
{
|
||||||
$events->listen(GetModelRelationship::class, [$this, 'getModelRelationship']);
|
|
||||||
$events->listen(GetApiRelationship::class, [$this, 'getApiRelationship']);
|
$events->listen(GetApiRelationship::class, [$this, 'getApiRelationship']);
|
||||||
$events->listen(WillGetData::class, [$this, 'includeTagsRelationship']);
|
$events->listen(WillGetData::class, [$this, 'includeTagsRelationship']);
|
||||||
$events->listen(Serializing::class, [$this, 'prepareApiAttributes']);
|
$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
|
* @param GetApiRelationship $event
|
||||||
* @return \Tobscure\JsonApi\Relationship|null
|
* @return \Tobscure\JsonApi\Relationship|null
|
||||||
|
Reference in New Issue
Block a user