在我的系统users
中可以有多个timesheets
,时间表可以有很多数据。
我正在尝试更新data_timesheet
表中的数据行。我用这个:
$data = ['column_1' => 'value'];
$this->findTimesheetById($id)->data()->saveMany($data);
但是,它给了我以下错误:
Argument 1 passed to Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() must be an instance of Illuminate\Database\Eloquent\Model, array given
我知道它为什么会给我错误,因为我需要发送一个模型而不是数组。 当传递的值来自用户表单时,如何发送模型?
修改
我可以这样做,但必须有更好的方法吗?
$data = $this->findTimesheetById($id)->data();
$data->delete();
$data->insert($data);
答案 0 :(得分:-1)
这样做的方法是:
1)创建文件模型并将其放在Models文件夹中。这个模型甚至可以几乎是空的,就像这样:
<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Session;
use DB;
class Booking extends Model{
2)然后在Controller中创建该模型的实例,如此
$theinstance = new Booking;
3)然后使用该对象获得给定的值,如下所示:
$theinstance->name = $name;
$theinstance->telephone = $telephone;
$theinstance->save();
这将是保存数据的方法。
现在,关于更新,在控制器上你可以有这样的东西:
$photosslide = Property::returnPhotosSlide($id);
$propertydetails = Property::returnPropertyDetails($id);
$alsointown = Property::returnAlsoInTown($id);
return view('detailsproperty', compact('photosslide','propertydetails','alsointown'));
这会将Form中的值发送到Model
一旦进入模型,只需执行更新查询。