[英]SQLSTATE[23000]: Integrity constraint violation: 1048 Laravel 4
[英]SQLSTATE[23000]: Integrity constraint violation: in Laravel 5.2
我需要將Project Model ID作為project_id傳遞給“我的任務模型”表。 這是我的TaskController
public function store(Request $request, Project $project)
{
$task = new Task;
$task->task_name = $request->input('name');
$task->body = $request->input('body');
$task->assign = $request->input('status');
$task->priority = $request->input('status');
$task->duedate = date("Y-m-d", strtotime($request->input("date")));
$task->project_id = $project->id;
// This will set the project_id on task and save it
$project->tasks()->save($task);
}
這是關於將任務數據存儲在項目文件夾刀片文件中的我的表單操作路線是show.blade.php
<form method="post" action="{{ route('tasks.store') }}">
這是任務模式
<?php
namespace App;
use App\User;
use App\Auth;
use App\Project;
use Illuminate\Database\Eloquent\Model;
class Task extends Model
{
protected $fillable = ['task_name', 'body', 'assign','priority','duedate','project_id'];
public function scopeProject($query, $id)
{
return $query->where('project_id', $id);
}
public function projects()
{
return $this->belongsTo('App\Project');
}
//
}
這是項目模型
{
protected $fillable = ['project_name','project_notes','project_status','color','group'];
//
public function tasks(){
return $this->hasMany('App\Task');
}
but I got this error massage here
SQLSTATE [23000]:違反完整性約束:1048列'project_id'不能為null如何解決此問題?
在store()函數中,您沒有給任務指定project_id。
因此,當您保存任務時,它會使project_id行為空。 默認情況下,此行是不允許的。 這就是為什么您會收到此錯誤。
我認為添加此行將起作用:
$task->project_id = $project->id;
您還可以在遷移中使project_id為空。 如果這樣做,則允許project_id為null。 但是我不認為那是您想要的。
僅將project_id
字段設置為有效值或零(如果沒有唯一索引)
在您的遷移文件中,您沒有提到project_id為null。 如果您不是,則必須以這種方式添加project_id
$table->string('project_id')->nullable();
如果您不以這種方式使用,則必須必須將project_id傳遞為有效值,例如0或其他值,但不能為null。 看到錯誤。 它說project_id不能為null。 因此您不能將null值用作project_id。
您在數據庫中說project_id不為null,但發送null值,這就是您收到此錯誤的原因。 希望你能理解。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.