更新 laravel 数据库
Update laravel database
我知道如果我想在 laravel 上更新数据库,我可以使用
$user = User::find($request->id);
$user->name = $request->get(‘name’);
$user->save();
但是,如果我的 table 中没有 id 列怎么办?主列名不是id?这个方法我试过了,没用
$user = User::where(‘userID’, $request->id);
$user->name = $request->get(‘name’);
$user->save();
这是我的table内容
accountReceiveAble
- 销售额 - PK
- 发票
- 税单
- 民进党
- ppn
- 付款日期
- 付款方式
这是我的控制器
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');
}
}
在此查询中 $user = User::where(‘userID’, $request->id);
像这样追加 first() $user = User::where(‘userID’, $request->id)->first();
如果您想将 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
部分:
Eloquent will also assume that each table has a primary key column
named id. You may define a protected $primaryKey
property to override
this convention.
我知道如果我想在 laravel 上更新数据库,我可以使用
$user = User::find($request->id);
$user->name = $request->get(‘name’);
$user->save();
但是,如果我的 table 中没有 id 列怎么办?主列名不是id?这个方法我试过了,没用
$user = User::where(‘userID’, $request->id);
$user->name = $request->get(‘name’);
$user->save();
这是我的table内容
accountReceiveAble
- 销售额 - PK
- 发票
- 税单
- 民进党
- ppn
- 付款日期
- 付款方式
这是我的控制器
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');
}
}
在此查询中 $user = User::where(‘userID’, $request->id);
像这样追加 first() $user = User::where(‘userID’, $request->id)->first();
如果您想将 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
部分:
Eloquent will also assume that each table has a primary key column named id. You may define a protected
$primaryKey
property to override this convention.