我知道是否要在laravel上更新数据库,我可以使用
$user = User::find($request->id);
$user->name = $request->get(‘name’);
$user->save();
但是如果我的表中没有ID列怎么办?它的主要列名称不是id吗?我尝试过这种方法,但没有用
$user = User::where(‘userID’, $request->id);
$user->name = $request->get(‘name’);
$user->save();
这是我的餐桌内容
accountReceiveAble
这是我的控制器
public function store(Request $request)
{
$ra = accountRecieveAble::where('sales',$request->sales)->firstOrFail();
$ra->invoice = $request->get('invoice');
$ra->taxInvoice = $request->get('taxInvoice');
$ra->dpp = $request->get('dpp');
$ra->ppn = $request->get('ppn');
$ra->paymentDate = $request->get('date');
$ra->paymentMethod = $request->get('method');
$ra->save();
return redirect(action('AccountRecieveAbleController@index'));
}
这是我的模特
class accountRecieveAble extends Model
{
protected $table = "account_recieve_ables";
public $primaryKey = 'sales';
public $timestamps =false;
public function sale(){
return $this->belongsTo('App\sales','sales');
}
}
答案 0 :(得分:1)
在此查询中$user = User::where(‘userID’, $request->id);
像这样$user = User::where(‘userID’, $request->id)->first();
附加first()
答案 1 :(得分:1)
如果要将primary key
更改为id
以外的其他名称,则需要在模型中覆盖它。
class YourModel
{
/**
* Your primary key column name.
*
* @var integer
*/
$primaryKey = 'sales';
}
此外,如果它不是整数值,则必须再次在模型中添加以下内容。
class YourModel
{
/**
* Your primary key column name.
*
* @var integer
*/
protected $primaryKey = 'sales';
/**
* If your primaryKey is not integer or non numeric value
*
* @var string
*/
protected $keyType = 'string';
/**
* And if it is not going to increment the value
*
* @var boolean
*/
public $incrementing = false;
}
从documentation-向下滚动到Primary Keys
部分:
口才也将假设每个表都有一个主键列 命名的ID。您可以定义一个受保护的
$primaryKey
属性以覆盖 这个约定。