SQLSTATE [23000]:完整性约束冲突:不能添加或更新子行:使用外键约束失败雄辩
问题描述:
我得到这个错误SQLSTATE [23000]:完整性约束冲突:不能添加或更新子行:使用外键约束失败雄辩
SQLSTATE [23000]:完整性约束违规:1452无法添加或 更新子行,外键约束失败
当我添加待办事项,但是当我通过对mysql
做到这一点像下面我得到以下
mysql> INSERT INTO tasks(task,created_at,user_id)VALUES('owls are cool',CURTIME(),1);查询行,1行受影响(0.03秒)
,它体现在我的数据库,但是当我在我的控制器链接到路线内做到这一点这是行不通的。
这在超薄PHP中使用雄辩的方式
任何建议
<?php
namespace App\Controllers;
use Slim\Http\Request;
use Slim\Http\Response;
use App\Models\Task;
use App\Models\User;
class HomeController extends BaseController
{
public function index($request, $response)
{
return $this->c->view->render($response, 'home.twig');
}
public function addTask($request, $response) {
$input = $request->getParsedBody();
$sql = new Task();
$options = array(
'options' => array(
'default' => 3, // value to return if the filter fails
// other options here
'min_range' => 0
),
'flags' => FILTER_FLAG_STRIP_BACKTICK,
);
$sql->task = filter_var($input['task'], FILTER_SANITIZE_STRING, $options);
$sql->save();
return $response->write($sql->toJson())->withRedirect('/todos');
}
答
修正它得我的外接任务控制器改变这种
<?php
namespace App\Controllers;
use Slim\Http\Request;
use Slim\Http\Response;
use App\Models\Task;
use App\Models\User;
use App\Auth\Auth;
class HomeController extends BaseController
{
public function index($request, $response)
{
return $this->c->view->render($response, 'home.twig');
}
public function addTask($request, $response) {
$data = $request->getParsedBody();
$task = Task::create([
'task' => $data['task'], // $request->title also works?
'user_id' => Auth::user()->user_id // there might be a better solution, but this works 100%
]);
var_dump($task);
return $response->write($task->toJson())->withRedirect('/todos');
}
什么是$输入?为什么在任务上有任务?很混乱! – Scriptonomy
@Scriptonomy我一直在用你的指导来解决问题,我的主要问题是我如何添加一个与用户关联的新任务? – BARNOWL