Ich möchte eine einfache Suchfunktion für meine Tabelle machen. Diese Tabelle enthält die Daten aus zwei mssql-Tabellen [Addresses] und [Companies]. Die Tabellen haben eine Eins-zu-eins-Beziehung.Suchfunktion mit eins zu eins Beziehung in Laravel 5.4
class Addresses extends Model
{
protected $table = "Addresses";
protected $primaryKey = 'adress';
public $timestamps = false;
public function scopeSearchAddress($query, $searchTerm)
{
return $query->where('city', 'LIKE', '%'.$searchTerm.'%')
->orWhere('name', 'LIKE', '%'.$searchTerm.'%')
->orWhere('street', 'LIKE', '%'.$searchTerm.'%');
}
public function company()
{
return $this->hasOne(Company::class, 'adress');
}
Die Beziehung ist eine Adresse eine Firma. Die erste Tabelle Adresse haben Namen, Straße, Stadt Spalten und die zweite Tabelle haben compName, compType.
class Company extends Model
{
protected $table = "Company";
protected $primaryKey = 'Adresse';
public $timestamps = false;
public function addresses()
{
return $this->belongsTo(Addresses::class, 'adress');
}
}
dies sind die beiden Modelle. Der Controller sieht wie folgt aus:
class AddressesController extends Controller
{
public function index(Request $request)
{
$searchTerm = $request->input('searchTerm');
$addresses = Addresses::whereHas('compan', function($query) {
$query->where('compType','D');
})->orderBy('Name')
->searchAddress($searchTerm)
->paginate(60);
return view('asdress.index', compact('addresses', 'searchTerm'));
}
}
i nach den ersten Tabellenspalten suchen (Stadt, Name, Straße). aber wie kann ich nach den zweiten Tabellenspalten wie dem compName suchen.
Hallo, Sie haben die Verwendung ($ searchTerm) nach der Funktion vergessen, aber das funktioniert auch nicht. –
@GregOstry Danke, dass du darauf hingewiesen hast ... mein Schlechter ... habe meine Antwort bearbeitet –