Laravel. Не могу понять, как трансформировать в таблице "users" - "post_id" (ID Должности) в его "name" (Название должности)
Я хочу реализовать поиск по таблице "users".
Миграция таблицы 'users':
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('surname')->nullable();
$table->string('name')->nullable();
$table->string('patronymic')->nullable();
$table->string('mobile_tel', 14)->nullable();
$table->string('work_tel',3)->nullable();
$table->foreignId('post_id')->constrained('posts')->cascadeOnDelete()->cascadeOnUpdate();
$table->foreignId('office_id')->constrained('offices')->cascadeOnDelete()->cascadeOnUpdate();
$table->foreignId('floor_id')->constrained('floors')->cascadeOnDelete()->cascadeOnUpdate();
$table->foreignId('department_id')->constrained('departments')->cascadeOnDelete()->cascadeOnUpdate();
});
Миграция таблицы 'posts':
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('name')->unique();
});
При вводе в input, поиск распознаёт только id Должности. Мне нужно чтобы он реагировал на name должности, а так же выводил её.
SearchController:
public function search(Request $request)
{
if (isset($_GET['query'])) {
$search_text = $_GET['query'];
$users = DB::table('users')->where('surname', 'LIKE', '%'.$search_text.'%')
->orwhere('name', 'LIKE', '%'.$search_text.'%')
->orwhere('surname', 'LIKE', '%'.$search_text.'%')
->orwhere('patronymic', 'LIKE', '%'.$search_text.'%')
->orwhere('post_id', 'LIKE', '%'.$search_text.'%')
->paginate(20);
return view('search', ['users' => $users]);
} else {
return view('search');
}
}
search.blade.php:
<form action="{{route('web.search')}}" method="GET">
<input type="text" name="query" required>
<button type="submit">Поиск</button>
</form>
@if(isset($users))
@if(count($users) > 0)
@foreach($users as $user)
{{$user->post_id}}
@endforeach
@else
Нет результата
@endif
@endif
Помогите пожалуйста!