Custom user fields #711 (#772)

Custom user fields during registration and profile edit #711
This commit is contained in:
Nabeel S
2020-08-11 17:48:51 -04:00
committed by GitHub
parent 3739cc8e91
commit 3ebf4f2924
36 changed files with 740 additions and 107 deletions

View File

@@ -0,0 +1,32 @@
<?php
namespace App\Repositories;
use App\Contracts\Repository;
use App\Models\UserField;
use App\Models\UserFieldValue;
class UserFieldRepository extends Repository
{
protected $fieldSearchable = [
'name' => 'like',
];
/**
* @return string
*/
public function model(): string
{
return UserField::class;
}
/**
* Return whether or not this field is in use by a value
*
* @param $id
*/
public function isInUse($id): bool
{
return UserFieldValue::where(['user_field_id' => $id])->exists();
}
}

View File

@@ -5,12 +5,11 @@ namespace App\Repositories;
use App\Contracts\Repository;
use App\Models\Enums\UserState;
use App\Models\User;
use App\Models\UserField;
use App\Repositories\Criteria\WhereCriteria;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;
/**
* Class UserRepository
*/
class UserRepository extends Repository
{
protected $fieldSearchable = [
@@ -29,6 +28,26 @@ class UserRepository extends Repository
return User::class;
}
/**
* Get all of the fields which has the mapped values
*
* @param \App\Models\User $user
*
* @return \App\Models\UserField[]|\Illuminate\Database\Eloquent\Collection|\Illuminate\Support\Collection
*/
public function getUserFields(User $user): Collection
{
return (UserField::all())->map(function ($field, $_) use ($user) {
foreach ($user->fields as $userFieldValue) {
if ($userFieldValue->field->slug === $field->slug) {
$field->value = $userFieldValue->value;
}
}
return $field;
});
}
/**
* Number of PIREPs that are pending
*