im trying to get 5 data from DB with their ID ?
HTML
<input type="number" name="cid1">
<input type="number" name="cid2">
<input type="number" name="cid3">
<input type="number" name="cid4">
<input type="number" name="cid5">
Route
Route::post('/selectCampaign','EmailController@selectCampaign')->name('selectCampaign');
Controller - im Trying to get Just 1 ID and its not Working
public function selectCampaign(Request $request)
{
$id1 = request('cid1');
$offers = Offer::where('id','=', $id1);
return view('email_add', compact('offers'));
}
I want to show 5 Offers from Offers Table, with given 5 ID in HTML Form ? How can i do this in Laravel ?
You never execute your query... where()
is a Query Builder instance, until you call ->first()
or ->get()
. If you want 1 record, then use first()
, if you want multiple, then use get()
.
Or, in your case, you can use find()
:
$offer = Offer::where('id', '=', $request->input('cid1'))->first();
// OR
$offer = Offer::find($request->input('cid1'));
If you want to get all 5, then you'd call:
$offers = Offer::whereIn('id', [
$request->input('cid1'),
$request->input('cid2'),
$request->input('cid3'),
$request->input('cid4'),
$request->input('cid5')
])->get();
Or, if no other input is being passed from your form:
$offers = Offer::whereIn('id', $request->except('_token'))->get();