Matt C.
Well-known member
In my matchmaking add-on, I want users to only be able to have one entry visible at a time. If a user creates a new match, then their previous match will be archived.
Here is the save code all together (Yes I know it's not pretty, but this is the only I know how to save entities):
This didn't work. If someone could help me out, that would be great.
Code:
/** @var \AH\Matchmaking\Finder\Match $matchFinder */
$matchFinder = $this->finder('AH\Matchmaking:Match');
$oldMatch = $matchFinder
->where('user_id', '=', $visitor->user_id)
->where('archived', '=', false)
->fetch();
if ($oldMatch)
{
$oldMatch->archived = true;
}
Here is the save code all together (Yes I know it's not pretty, but this is the only I know how to save entities):
Code:
public function actionSave(ParameterBag $params)
{
$this->assertPostOnly();
$visitor = \XF::visitor();
if (!$visitor->canAddMatch())
{
throw $this->exception($this->noPermission());
}
/** @var \AH\Matchmaking\Finder\Match $matchFinder */
$matchFinder = $this->finder('AH\Matchmaking:Match');
$oldMatch = $matchFinder
->where('user_id', '=', $visitor->user_id)
->where('archived', '=', false)
->fetch();
if ($params->match_id)
{
$match = $this->assertMatchExists($params->match_id);
}
else
{
$match = $this->em()->create('AH\Matchmaking:Match');
}
$title = $this->filter('title', 'str');
$platform = $this->filter('platform', 'str');
$voice = $this->filter('voice', 'bool');
$match_username = $this->filter('match_username', 'str');
$description = $this->filter('description', 'str');
$match->title = $title;
$match->platform = $platform;
$match->voice = $voice;
$match->match_username = $match_username;
$match->description = $description;
$match->user_id = $visitor->user_id;
$match->username = $visitor->username;
$match->warning_id = '';
$match->warning_message = '';
$match->match_state = 'visible';
$match->archived = false;
$match->save();
if ($oldMatch)
{
$oldMatch->archived = true;
}
return $this->redirect($this->buildLink('matchmaking'));
}
This didn't work. If someone could help me out, that would be great.
Last edited: