我有两个表有关系:
包装表:
slug
Package_Banner_Image
Package_Type
Package_Name
Package_Price
Package_Duration
Package_Level
Package_Short_Description
Package_Description
Featured
Package_Location
节目表
id
package_id
day
title
description
因此,在我的管理面板中,当我尝试使用关系创建时,它只会添加到 package_id = 1 无论您从哪个包创建。
我的包装模型
class Package extends Model
{
protected $guarded = [];
public function program() {
return $this->hasOne(Program::class);
}
}
我的程序模型
class Program extends Model
{
protected $guarded = [];
public function package() {
return $this->belongsTo(Package::class);
}
}
现在这是我的PackageProgramController
页面中用于创建和存储的代码:
public function create($packageSlug) {
$package = Package::firstorFail();
return view('admin.create.createPackageProgram',compact('package'));
}
public function store(Request $request,$packageSlug)
{
$packages = Package::firstOrFail();
$data = request()->validate([
'day' => 'required',
'title' => 'required',
'description' => 'required',
]);
$packages->program()->create($data);
switch ($request->input('action')) {
case 'preview':
return redirect()->intended(route('PackageProgram',$packageSlug))->with('message', 'Package Program has been added.');
break;
default:
return redirect()->back()->with('message', 'Package Program has been added.');
break;
}
}
现在终于我的路线看起来像这样:
Route::prefix('package-programs')->group(function() {
Route::get('/', 'AdminVisible\PackageController@index')->name('PackagePrograms');
Route::prefix('{packageSlug}')->group(function() {
Route::get('/', 'AdminVisible\PackageProgramController@index')->name('PackageProgram');
Route::get('/create', 'AdminVisible\PackageProgramController@create')->name('PackageProgram.create');
Route::post('/create', 'AdminVisible\PackageProgramController@store')->name('PackageProgram.store');
});
});