Ich habe zwei Tabelle "Patient" und "Buchung" -Tabelle, und es gibt eine Beziehung "Eins zu Viele" zwischen ihnen, ich möchte ein Suchformular in einer index_booking Seite einrichten, wo ein Benutzer kann einen Patientenname eingeben und automatisch vervollständigen alle Patientenname aus Patiententabelle nach WHERE Bedingung.Autocomplete Kein Ergebnis gefunden in Laravel
Dies ist Buchung Modell
class Booking extends Eloquent
{
public function patient()
{
return $this->belongsTo('App\Patient');
}
public function user()
{
return $this->belongsTo('App\User');
}
}
Dieses
Patient Modell istclass Patient extends Eloquent
{
public function booking()
{
return $this->hasMany('App\Booking');
}
public function user()
{
return $this->belongsTo('App\User');
}
}
und ich diesen Code in Index-Seite der Buchung
{!! Form::text('search_text', null, array('placeholder' => 'Search Text','class' => 'form-control','id'=>'search_text')) !!}
i in Booking-Controller diesen Code verwendet Autocomplete zu machen, um Daten von Patiententabelle zu zeigen:
public function autoComplete(Request $request)
{
$patients = Patient::where('company_id', Auth::user()->company_id)
->where('patient_name', 'like', "&{$request->get('term')}&")
->get();
if ($patients->isEmpty()) {
return ['value' => 'No Result Found', 'id' => ''];
}
return $patients->map(function ($patient) {
return [
'id' => $patient->id,
'value' => $patient->patient_name,
];
});
}
Und das ist Strecke
Route::get('autocomplete',array('as'=>'autocomplete','uses'=>'[email protected]'));
Route::get('searchajax',array('as'=>'searchajax','uses'=>'[email protected]'));
Javascript-Code ist
<script >
$(document).ready(function() {
src = "{{ route('searchajax') }}";
$("#search_text").autocomplete({
source: function(request, response) {
$.ajax({
url: src,
dataType: "json",
data: {
term : request.term
},
success: function(data) {
response(data);
}
});
},
minLength: 3,
});
});
</script>
, wenn ich in das Suchfeld alle Patientennamen eingeben erhielt ich eine Nachricht Keine Ergebnisse
gefundendies Der Prüfer in der Buchungssteuerung:
public function store(Request $request)
{
//Validate Data
$this->validate($request, [
'patient_id'=> 'required|integer',
'booking_date'=> 'required|max:255',
'tybe'=> 'required',
'value'=>'required',
'doctor_name',
'patient_history',
'pharma',
'complaint',
'diagnosis',
'recomind',
'prescription',
'notes',
'document',
'by',
]);
//Insert Data to Database
$booking = new Booking;
$booking->patient_id = $request->patient_id;
$booking->booking_date = $request->booking_date;
$booking->tybe = $request->tybe;
$booking->value = $request->value;
$booking->doctor_name = $request->doctor_name;
$booking->patient_history = $request->patient_history;
$booking->pharma = $request->pharma;
$booking->complaint = $request->complaint;
$booking->diagnosis = $request->diagnosis;
$booking->recomind = $request->recomind;
$booking->prescription = $request->prescription;
$booking->notes = $request->notes;
$booking->document = $request->document;
$booking->by = $request->by;
$booking->save();
//to save multi selection Tags ,dont foget to add [] after -> tags in create post page then write this code here
//$post->tags()->sync($request->tags, false);
//Show Flash Message
Session::flash('success','تم حفظ البياانات');
//Redirect to another Page
return redirect()->route('booking.index');
}
Wilcards für SQL LIKE-Operator sind Prozentzeichen, nicht kaufmännisch. –
könnten Sie es bitte erklären? –
Ihre '-> where ('patient_name', 'like', '& {$ anfrage-> get (' term ')} &") 'Linie erzeugt SQL-Abfrage mit' WHERE Patientenname LIKE' & etwas & ''und es sollte sein 'WHERE geduldiger_name LIKE '% something%'' –