用自己的模板替换 admin 的后出现的几个问题,请教
看到这里,就试着自己写了表单页面替换admin的,然后就出现了下面的问题。
表关系如下:
CLASS ProjectPurchase{
protected $fillable = ['process'];
public function operationRecord()
{
return $this->hasMany(OperationRecord::class);
}
}
CLASS OperationRecord {
protected $fillable = ['test',‘operation’];
public function user()
{
$userModel = config('admin.database.users_model');
return $this->belongsTo($userModel,'operator');
}
public function projectPurchase()
{
return $this->belongsTo(ProjectPurchase::class);
}
}
保存方法:
public function mysave($id){
$user = Admin::user();
$project = ProjectPurchase::find($id);
$project->process = ‘www’;//字段为INT,测试用脏数据
$record = new OperationRecord();
$record->test = '哈哈哈';
$record->operator = $user->id;
DB::transaction(function () {
$project->operationRecord()->save($record);
$project->save();
});
return redirect('/admin/projectpurchases');
}
遇到问题:
1、上面mysave方法中,闭包没加use的情况下,一直执行到了$project->save();抛出了SQL异常,不止一次。但后来看完资料回来,就再也进不去了。
2、关联表保存的时候user _id怎么关联保存?试过下面这些方法,都无效。采用直接赋值$record->operator = $user->id;才成功,难道以后每添加一张表,就要给admin_user增加一个关联?
$project->user = $user->id,
$project->user() = $user,
$project->operationRecord()->save($record,$user);\
3、为了获得表单内容,mysave方法改为如下,结果报找不到operator错误,但打印出来却显示data1包含operator,且有值。将data1替换成手工赋值的模型实例record,则保存成功。无法理解,请教!!
public function mysave($id,Request $request){
dump($request->all());
$user = Admin::user();
$project = ProjectPurchase::find($id);
$record = new OperationRecord();
$record->operator = $user->id;
$data1 = $request->only(['operation','test']);
$data1['operator']= $user->id;
DB::transaction(function () use($project,$data1,$request) {
$project->operationRecord()->create($data1);
$project->update($request->all());
});
dump($data1);
return [];
}
4、有没有什么能够整体虫request到模型进行组装或者保存的办法?试过下面这个,还有this-》form等,不管用,报错。
$project->operationRecord()->save($request->all());
HasOneOrMany::save() must be an instance of 。。。。。
推荐文章: