Arama imkanmı yükseltmeye çalışıyorum, şu anda mevcut olan tüm becerileri listeliyorum ve bir kez tıkladığınızda bu yetenekle birlikte handymens'i arıyor. Şimdi bir arama kutusu oluşturmak istiyorum, böylece kullanıcı herhangi bir şey girdikten sonra bu yetenekle tüm handymensleri arayacak ve gösterecek bir şey girdikten sonra. örneğin 'p', 'Tesisatçı' geri dönecekti. Ama bununla çok uğraşıyorum, lütfen başka bir dosya veya veritabanının eklenmesi gerekiyorsa lütfen bana bildirin.laravel'de arama tesisi oluşturma
Görünüm:
<h1>Here you can search</h1>
<form action="{{url('details')}}" method="POST">
{{ csrf_field() }}
<div>
<input type='text' name='skill'/>
</div>
<input type="submit" name="submitBtn" value="Search">
</form>
@foreach ($skills as $skill)
<p>
<a href="{{url('details/'.$skill->id)}}">{{$skill->skill}}</a>
</p>
@endforeach
@endsection
Denetleyici:
function search()
{
$skills = Skill::all();
return view('layouts/search',['skills' => $skills]);
}
function details($skillId)
{
$skill = Skill::find($skillId);
$handymen = $skill->handymen;
$skill = Input::get('skill');
$result = Handyman::where('skills','LIKE','%'.$skill.'%')
->orWhere('email','LIKE','%'.$skill.'%')
->get();
return view('layouts/details', ['skill' => $skill,'handymen' => $handymen]);
}
sıhhı veritabanı:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateHandymenTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('handymen', function (Blueprint $table) {
$table->increments('id');
$table->string('first_name');
$table->string('last_name');
$table->string('street');
$table->string('postcode');
$table->string('town');
$table->string('skills');
$table->integer('job_id')->unsigned();
$table->foreign('job_id')->references('id')->on('jobs')->onDelete('cascade');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('handymen', function (Blueprint $table) {
$table->dropForeign('handymen_job_id_foreign');
$table->dropColumn('job_id');
});
}
}
Beceri tablo:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateSkillsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('skills', function (Blueprint $table) {
$table->increments('id');
$table->string('skill');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('skills');
}
}
Kavşak tablosu:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateHandymanSkillTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('handyman_skill', function (Blueprint $table) {
$table->integer('handyman_id')->unsigned();
$table->integer('skill_id')->unsigned();
$table->timestamps();
});
Schema::table('handyman_skill', function ($table) {
$table->primary(['handyman_id', 'skill_id']);
$table->foreign('handyman_id')->references('id')->on('handymen')->onDelete('cascade');
$table->foreign('skill_id')->references('id')->on('skills')->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('handyman_skill');
}
}
Bu tür hizmetlerin kullanımı olmadan işleri yapmak istediğim şeyleri basit tutmaya çalışıyorum –