【发布时间】:2019-02-12 00:17:09
【问题描述】:
我想分配外键值。 p_members 表中的外键是 user_id。原始键是all_users 表中的userId。但是当我尝试这样做时会出现以下错误。
我创建单独的两个表来获取用户详细信息并获取p-member 详细信息。
我是 Laravel 的初学者。
错误:
SQLSTATE[23000]:违反完整性约束:1048 列“user_id” 不能为空(SQL:插入到`p_members`(`addNo`,`addStreet`, `addCity`、`intentToJoin`、`user_id`、`updated_at`、`created_at`) 值 (qwertfgyhj, ertfyguhj, erdftgyhuj, ertfgyhjk, , 2018-09-06 2018-09-06 16:38:19 16:38:19))
我的控制器是:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\allUser;
use App\ORFOL;
use App\pMember;
class userController extends Controller
{
public function storeUsers(Request $request){
$table1=new allUser();
$table1->nameWithInitials = $request->input('name');
$table1->callingName = $request->input('callingName');
$table1->email = $request->input('email');
$table1->NIC = $request->input('nic');
$table1->contactNo = $request->input('contactNo');
$table1->password = bcrypt($request->input('password'));
$table1->type = $request->input('type');
$table1->save();
if($request->input('type') == 'P-Member'){
$table2=new pMember();
$table2->addNo = $request->input('addNo');
$table2->addStreet = $request->input('addStreet');
$table2->addCity = $request->input('addCity');
$table2->intentToJoin = $request->input('intentToJoin');
$table2->user_id = $table1->userId;
$table2->save();
return view('familyMember');
}
if(($request->input('type')) =='OR-FOL' ){
$table3=new ORFOL();
$table3->region = $request->input('region');
$table3->user_id = $table1->userId;
$table3->save();
}
if(($request->input('type')) =='' ){
$table3=new ORFOL();
$table3->region = $request->input('region');
$table2->user_id = $table1->userId;
$table3->save();
}
return redirect()->back();
}
}
【问题讨论】:
-
如果
allUser的主键是id,那么你需要使用$table2->user_id = $table1->id;。如果应该是userId,则需要确保将其设置为allUser中的主键。 -
我已经这样做了。
-
做哪个部分?
allUser的架构以及类是什么? -
检查table1保存操作是否失败。如果保存操作成功,则 userId 可用