Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQLSTATE[HY000]:常规错误:1364字段“uID”没有默认值_Php_Mysql_Database_Laravel_Xampp - Fatal编程技术网

Php SQLSTATE[HY000]:常规错误:1364字段“uID”没有默认值

Php SQLSTATE[HY000]:常规错误:1364字段“uID”没有默认值,php,mysql,database,laravel,xampp,Php,Mysql,Database,Laravel,Xampp,刚从拉威尔开始。我已经附加了我的用户和配置文件模型以及配置文件控制器。我的目标是在配置文件表中自动分配外键uID。任何帮助都将不胜感激 用户模型文件 配置文件模型文件 配置文件迁移文件 配置文件控制器文件 如果在程序中不提供值,则需要在表定义级别提供默认值 根据您的描述,在创建用户记录后,似乎缺少创建配置文件的功能。更改迁移文件, 因为您希望稍后定义关系,所以您的外部id字段应该可以为空 use Illuminate\Support\Facades\Schema; use Illuminate\

刚从拉威尔开始。我已经附加了我的用户和配置文件模型以及配置文件控制器。我的目标是在配置文件表中自动分配外键uID。任何帮助都将不胜感激

用户模型文件 配置文件模型文件 配置文件迁移文件 配置文件控制器文件
如果在程序中不提供值,则需要在表定义级别提供默认值


根据您的描述,在创建用户记录后,似乎缺少创建配置文件的功能。

更改迁移文件, 因为您希望稍后定义关系,所以您的外部id字段应该可以为空

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateProfilesTable extends Migration
{
public function up()
{
// create profile table
Schema::create('profiles', function (Blueprint $table) {
$table->increments('pID');
$table->timestamp('created_at')->useCurrent();
$table->string('summary')->default('');
$table->integer('uID')->nullable()->unsigned();

$table->foreign('uID')
        ->references('uID')
        ->on('users')
        ->onDelete('cascade');
});
}
}
如果您想在创建配置文件后分配登录用户

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\profile;

class ProfileController extends Controller
{
    public function store(Request $request)
    {
       // used to store user profile after validation
        $this->validate($request,[
          'summary' => 'required'
        ]);
        $profile = new profile([
          'summary' => $request->get('summary'),
          'uID'     => auth()->user()->id,

        ]);
        $profile->save();

        return redirect()->route('profile.create')->with('success','Profile created');
    }
}

你试过给uID一个默认值吗?我使用了nullable作为默认值,这个问题消失了,但是它使uID为null。我希望在不断添加用户和相关配置文件时将uID设置为用户'uID'。我使用了nullable作为默认值,问题消失了,但如何将uID设置为用户'uID'。uID是引用用户“uID”的外键。我希望继续添加新用户及其关联的配置文件,而无需在配置文件表中手动设置uID外键。因此,您将添加ID为autoincrement的用户,并且在需要创建新配置文件时,您没有该用户的最后一个autoincrement序列值。我说得对吗?尝试提供selecting user object back以获取自动增量值。是。我如何落实你的建议?我是否在$profile->user->uID之前添加$profile['uID']=$profile->user->uIDsave@AmartyaBarua:那不对。在$profile->user中,此时可能会出现空值。在最坏的情况下,您需要从firstname='…'和lastname='…'以及email='…'的用户处调用数据库中的SELECT*之类的函数,以便将自动增量返回到程序中。我不知道拉威尔的工作原理。许多框架也会在实体发送到数据库后自动更新其数据库数据。
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateProfilesTable extends Migration
{
    public function up()
    {
      // create profile table
        Schema::create('profiles', function (Blueprint $table) {
            $table->increments('pID');
            $table->timestamp('created_at')->useCurrent();
            $table->string('summary')->default('');
            $table->integer('uID')->unsigned();

            $table->foreign('uID')->references('uID')->on('users')->onDelete('cascade');
        });
    }
}
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\profile;

class ProfileController extends Controller
{
    public function store(Request $request)
    {
       // used to store user profile after validation
        $this->validate($request,[
          'summary' => 'required'
        ]);
        $profile = new profile([
          'summary' => $request->get('summary'),
        ]);
        $profile->save();

        return redirect()->route('profile.create')->with('success','Profile created');
    }
}
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateProfilesTable extends Migration
{
public function up()
{
// create profile table
Schema::create('profiles', function (Blueprint $table) {
$table->increments('pID');
$table->timestamp('created_at')->useCurrent();
$table->string('summary')->default('');
$table->integer('uID')->nullable()->unsigned();

$table->foreign('uID')
        ->references('uID')
        ->on('users')
        ->onDelete('cascade');
});
}
}
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\profile;

class ProfileController extends Controller
{
    public function store(Request $request)
    {
       // used to store user profile after validation
        $this->validate($request,[
          'summary' => 'required'
        ]);
        $profile = new profile([
          'summary' => $request->get('summary'),
          'uID'     => auth()->user()->id,

        ]);
        $profile->save();

        return redirect()->route('profile.create')->with('success','Profile created');
    }
}