M. *_*ari 2 php mysql laravel laravel-5
我正在用 Laravel 构建一个网络应用程序。
第一个问题:
用户仪表板上有一个简单的表格可以填写和保存。
这是模型:
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;
}
Run Code Online (Sandbox Code Playgroud)
这是控制器:
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!';
}
Run Code Online (Sandbox Code Playgroud)
和路线:
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';
});
Run Code Online (Sandbox Code Playgroud)
当我完成表单并点击发送按钮时,它返回此错误:
"SQLSTATE[HY000]: 一般错误: 1364 字段 'user_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();
});
}
Run Code Online (Sandbox Code Playgroud)
user_id 正在使用来自 users 表的外部引用。
让我解释一下这个过程,考虑到我们有一些用户在我们的应用程序上注册,他们中的一些人想在我们的网站上添加他们的沙龙,所以我们想使用沙龙表上用户表中的 user_id,所以我们可以返回沙龙我们主页上的用户数据(个人资料)。
第二个问题:
如果一个沙龙有两个独立的电话号码,我如何将它们分别存储在这个表中?
我的意思是,人们可以根据需要添加许多电话号码。或者尽可能多的地址,在不同的字段中。
第三个问题:
为每个沙龙创建一个投资组合部分,我是否应该创建一个新表,例如附件以包含图片地址和沙龙 id 以便稍后在各自的页面上返回它们?
也添加user_id到可填充数组:
protected $fillable = ['user_id', 'salonname', 'saloncity', 'salonaddress', 'salontel', 'salonmob', 'salonsite', 'saloncat', 'salonkhadamat', 'salonkhadamatprice', 'salondesc', 'saloninsta', 'salontelegram', 'salontags'];
Run Code Online (Sandbox Code Playgroud)
或者,如果定义了关系,则使用该关系:
$salon = auth()->user()->salons()->create([....
Run Code Online (Sandbox Code Playgroud)
如果没有定义:
public function salons()
{
return $this->hasMany(Salon::class);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2112 次 |
| 最近记录: |