Reputation: 429
I am having trouble saving this into database. When I submit my data into database it will only show name_of_bear and all the many relationship stuff(type_of_fish) but not the type_of_bear
Can someone explain to me why it can't work and also maybe give me an example on how it should be done. Thank you
Controller: (this works)
public function submit(Request $request)
{
$fishType= $request->input('type_of_fish');
$Name = $request->input('Name');
$bearType = $request->input('bearType');
$bear = Bear::create(['Name' => $request->input('name_of_bear')]);
$bear->fishs()->create(['type_of_fish' => json_encode($fishType)]);
return ('thank you');
}
But if I were to do this:
Controller : (doesn't work)
public function submit(Request $request)
{
$fishType= $request->input('type_of_fish');
$Name = $request->input('Name');
$bearType = $request->input('bearType');
$bear = Bear::create(['Name' => $Name]);
$bear = Bear::create(['bearType' => $bearType]); --> doesn't work if add in this
$bear->fishs()->create(['type_of_fish' => json_encode($fishType)]);
return ('thank you');
}
or this:
Controller: (doesn't work)
public function submit(Request $request)
{
$fishType= $request->input('type_of_fish');
$Name = $request->input('Name');
$bearType = $request->input('bearType');
$bear = Bear::create(['Name' => $Name], ['bearType' => $bearType]); --> doesn't work
$bear->fishs()->create(['type_of_fish' => json_encode($fishType)]);
return ('thank you');
}
Upvotes: 2
Views: 3933
Reputation: 941
I would do it like this, assuming that post array keys matches column names.
$bear = Bear::create($request->all()->except(['_token', 'type_of_fish']));
Upvotes: 1
Reputation: 373
You can insert data like this:
public function submit(Request $request)
{
$data = array();
$data['type_of_fish']= $request->type_of_fish;
$data['Name'] = $request->Name;
$data['bearType'] = $request->bearType;
$bear = Bear::create($data);
return ('thank you');
}
For more information read Documentation
Upvotes: 1
Reputation: 1838
You can just use:
$bear = Bear::create(['Name' => $Name, 'bearType' => $bearType]);
For more info, visit this link.
Upvotes: 1
Reputation: 6223
You can add it like this
$bear = Bear::create(['Name' => $Name , 'bearType' => $bearType]);
full code:
public function submit(Request $request)
{
$fishType= $request->input('type_of_fish');
$Name = $request->input('Name');
$bearType = $request->input('bearType');
$bear = Bear::create(['Name' => $Name , 'bearType' => $bearType]);
return ('thank you');
} // removed extra }
For further information you can read documentation
Upvotes: 1