2017-11-04 305 views
1

我得到这个错误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'); 
    } 
+0

什么是$输入?为什么在任务上有任务?很混乱! – Scriptonomy

+0

@Scriptonomy我一直在用你的指导来解决问题,我的主要问题是我如何添加一个与用户关联的新任务? – BARNOWL

回答

0

修正它得我的外接任务控制器改变这种

<?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'); 
    } 
相关问题