Всем доброго времени суток!
Суть вопроса такова:
Есть таблица в БД, в которой хранятся значения сетевых адаптеров, ввиду этого в таблице не создавалось поле "id" а ключевым полем было назначено поле "mac", поскольку физические адреса сами по себе уникальны.
Для сохранения данных о сетевом адаптере после редактирования я написал следующую функцию:
public function saveNic (Request $request)
{
$data = $request->all();
$host = $data['host'];
unset ($data['host']);
$tmp= Networkcard::select(['mac', 'name', 'network', 'wol'])->where('mac',$data['mac'])->get();
$nic=$tmp[0];
$nic->fill($data);
$nic->save();
return redirect("/host/".$host);
}
Как видно в коде, проблему с выборкой из базы я обошел следующим образом (если это можно улучшить, подскажите пожалуйста как).
Но при сохранении и вызове метода save() Laravel формирует запрос в котором ключевым полем считает поле id. Ввиду этого резонно говорит мне об ошибке.
Подскажите пожалуйста как можно изменить запрос инструментами Laravel на сохранение данных, или может добавить какие то параметры к методу save(), что бы при запросе не искалось соответствие по полю mac, а не по полю id?