Reputation: 259
Hey guys please help help how can I pass chosen data in dropdownlist to controller to save then. Here is the code I am using:
The view:
<div class="form-group">
{{Form::label('IncomeExpense', 'Income&Expense')}}
{{Form::select('IncomeExpense', array( 'Expense', 'Income'),null,['class'=>'form-control'])}}
</div>
<div class="form-group">
{{Form::label('', 'Income')}}
{{Form::select('IncomeId', $incomes,null,['class'=>'form-control','id'=>'Income', 'onChange'=>'validate()'])}}
</div>
The controller:
$incexp= new IncomeExpenses();
$incexp->IncomeExpense=$request->input('IncomeExpense');
$incexp->save();
Model class
class IncomeExpenses extends Model
{
public function income(){
return $this->hasOne(Income::class);
}
public function expense(){
return $this->hasOne(Expenses::class);
}
}
Upvotes: 0
Views: 51
Reputation: 2972
EDIT
Try using $incexp->IncomeExpense=$request->IncomeExpense;
instead of $request->input('IncomeExpense');
This is just like sending any other form, are you having trouble only with dropdowns ?
Your form open call should look something like this:
{!! Form::open(['method' => 'POST', 'url' => url('yourURL')] ) !!}
Depending on the version of Laravel 5... you will have to set the routes in the file routes.php or web.php
Route::post('yourURL', 'YourController@store');
Your store method should be something like
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'yourInput' => 'required',
]);
if ($validator->fails()) {
return redirect()->intended('yourURL')->withErrors($validator)->withInput();
}
DB::beginTransaction();
$incexp= new IncomeExpenses();
$incexp->IncomeExpense=$request->IncomeExpense;
$incexp->save();
DB::commit();
return redirect()->intended('yourURL/' . $incexp->id );
}
Upvotes: 1