Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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 字段';用户id';不';没有默认值_Php_Mysql_Laravel_Laravel 5 - Fatal编程技术网

Php 字段';用户id';不';没有默认值

Php 字段';用户id';不';没有默认值,php,mysql,laravel,laravel-5,Php,Mysql,Laravel,Laravel 5,我正在用laravel构建一个web应用程序 第一个问题: 用户仪表板上有一个简单的表单可供填写和保存。 这是模型: class Salon extends Model { protected $table = 'salons'; protected $fillable = [ 'salonname', 'saloncity', 'salonaddress', 'salontel', 'salonmob', 'salonsite', 'saloncat', 'sa

我正在用laravel构建一个web应用程序

第一个问题:

用户仪表板上有一个简单的表单可供填写和保存。
这是模型:

class Salon extends Model
{
    protected $table = 'salons';
    protected $fillable = [
        'salonname', 'saloncity', 'salonaddress', 'salontel', 'salonmob', 'salonsite', 'saloncat', 'salonkhadamat', 'salonkhadamatprice', 'salondesc', 'saloninsta', 'salontelegram', 'salontags'
    ];
    public $timestamps = false;
}
这是控制器:

public function store(Request $request)
{
    $user_id = Auth::user()->id;
    Salon::create([
        'user_id' => $user_id,
        'salonname' => $request['salonname'],
        'saloncity' => $request['saloncity'],
        'salonaddress' => $request['salonaddress'],
        'salontel' => $request['salontel'],
        'salonmob' => $request['salonmob'],
        'salonsite' => $request['salonsite'],
        'saloncat' => $request['saloncat'],
        'salonkhadamat' => $request['salonkhadamat'],
        'salonkhadamatprice' => $request['salonkhadamatprice'],
        'salondesc' => $request['salondesc'],
        'saloninsta' => $request['saloninsta'],
        'salontelegram' => $request['salontelegram'],
        'salontags' => $request['salontags']
    ]);

    return 'done!';
}
路线如下:

Route::get('/', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');
Route::get('/salons/add', function () {
    return view('add_salon');
})->middleware('auth');
Route::post('salons', 'SalonsController@store');
Route::get('salons', function () {
    return 'Hi';
});
当我完成表单并点击发送按钮时,它返回以下错误:

“SQLSTATE[HY000]:一般错误:1364字段“用户id”没有默认值(SQL:insert into
salons
salonname

我哪里做错了?
我创建了一个表迁移,如下所示:

public function up()
{
    Schema::create('Salons', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('user_id')->unsigned();
        $table->foreign('user_id')->references('id')->on('users');
        $table->string('salonname');
        $table->string('saloncity');
        $table->string('salonaddress');
        $table->integer('salontel');
        $table->integer('salonmob');
        $table->string('salonsite');
        $table->string('saloncat');
        $table->string('salonkhadamat');
        $table->integer('salonkhadamatprice');
        $table->string('salondesc');
        $table->string('saloninsta');
        $table->string('salontelegram');
        $table->string('salontags');
        $table->timestamps();
    });
}
用户id正在使用来自用户表的外部引用。
让我解释一下这个过程,考虑到我们的用户注册了一些用户,他们中的一些人想在我们的网站上添加他们的沙龙,所以我们想从沙龙表上的用户表中使用UsRyID,这样我们就可以在我们的主页上用用户的数据(配置文件)返回沙龙。 第二个问题:

如果一家沙龙有两个独立的电话号码,我如何将它们分别存储在此表中?
我的意思是,人们可以根据需要添加多个电话号码。或者在不同的字段中添加任意多个地址。

第三个问题:


要为每家沙龙创建公文包部分,我是否应该创建一个新表,例如附件,以包含图片地址和沙龙id,以便稍后将其返回到各自的页面上?

也将
用户id
添加到可填充数组中:

protected $fillable = ['user_id', 'salonname', 'saloncity', 'salonaddress', 'salontel', 'salonmob', 'salonsite', 'saloncat', 'salonkhadamat', 'salonkhadamatprice', 'salondesc', 'saloninsta', 'salontelegram', 'salontags'];
或者,如果定义了关系,则使用该关系:

$salon = auth()->user()->salons()->create([....
如果未定义:

public function salons()
{
    return $this->hasMany(Salon::class);
}

它安全吗?这样用户就可以编辑用户id并更改数据库中的其他沙龙数据。@M.Safari如果您控制它,它是安全的。但是更好的方法是使用关系。对于第二个问题,您应该创建一个新表,其中包含与沙龙表有很多关系的电话号码。对于第三个问题,您应该创建一个新表通过saloon IDThank@Sohel0415,with与saloon table有很多关系