produits 'simples'
This commit is contained in:
parent
ccf6eb7edd
commit
d80d20c77a
7 changed files with 48 additions and 37 deletions
|
|
@ -38,12 +38,14 @@ class ProductsController extends Controller
|
|||
//ici récupération des infos additionnelles pour affichage dans la liste
|
||||
// @todo : parametrer l'occurence de ces affichages car ça n'aura aucun sens selon le type de produit
|
||||
foreach ($products as &$product) {
|
||||
$product->additionnalProductInfo = $product->additionnalProductInfo($product->product_type);
|
||||
if ($product->additionnalProductInfo === null) {
|
||||
//n'existe pas on renseigne un vide
|
||||
$product_type = $product->product_type;
|
||||
$modelClass = 'App\Models\\' . ucfirst($product_type);
|
||||
$product->$product_type = new $modelClass();
|
||||
if(!empty($product->product_type)) {
|
||||
$product->additionnalProductInfo = $product->additionnalProductInfo($product->product_type);
|
||||
if ($product->additionnalProductInfo === null) {
|
||||
//n'existe pas on renseigne un vide
|
||||
$product_type = $product->product_type;
|
||||
$modelClass = 'App\Models\\' . ucfirst($product_type);
|
||||
$product->$product_type = new $modelClass();
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($product);
|
||||
|
|
@ -53,15 +55,17 @@ class ProductsController extends Controller
|
|||
/**
|
||||
* create à product
|
||||
*/
|
||||
public function create(Request $request, $product_type)
|
||||
public function create(Request $request, $product_type = null)
|
||||
{
|
||||
if (!array_key_exists($product_type, config('theme.enum_product_types'))) {
|
||||
if (!empty($product_type) && !array_key_exists($product_type, config('theme.enum_product_types'))) {
|
||||
abort(404, "Cette page n'existe pas.");
|
||||
//return redirect()->route('bo.products.index');
|
||||
}
|
||||
$modelClass = 'App\Models\\' . ucfirst($product_type);
|
||||
$product = new Product();
|
||||
$product->$product_type = new $modelClass();
|
||||
if(!empty($product_type)) {
|
||||
$product->$product_type = new $modelClass();
|
||||
}
|
||||
$ranges = Range::all();
|
||||
$taxes = TaxRate::all();
|
||||
return view('bo.products.create', compact('product_type', 'product', 'ranges', 'taxes'));
|
||||
|
|
@ -180,15 +184,17 @@ class ProductsController extends Controller
|
|||
public function edit($id)
|
||||
{
|
||||
$product = Product::findOrFail($id);
|
||||
$product->additionnalProductInfo = $product->additionnalProductInfo($product->product_type);
|
||||
//above lines equivalent to :
|
||||
//$product = Product::with('additionnalProductInfo')->findOrFail($id);
|
||||
if(!empty($product->product_type)) {
|
||||
$product->additionnalProductInfo = $product->additionnalProductInfo($product->product_type);
|
||||
//above lines equivalent to :
|
||||
//$product = Product::with('additionnalProductInfo')->findOrFail($id);
|
||||
|
||||
if ($product->additionnalProductInfo === null) {
|
||||
//n'existe pas on renseigne un vide
|
||||
$product_type = $product->product_type;
|
||||
$modelClass = 'App\Models\\' . ucfirst($product_type);
|
||||
$product->$product_type = new $modelClass();
|
||||
if ($product->additionnalProductInfo === null) {
|
||||
//n'existe pas on renseigne un vide
|
||||
$product_type = $product->product_type;
|
||||
$modelClass = 'App\Models\\' . ucfirst($product_type);
|
||||
$product->$product_type = new $modelClass();
|
||||
}
|
||||
}
|
||||
|
||||
$ranges = Range::all();
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ class TagsSeeder extends Seeder
|
|||
*/
|
||||
public function run()
|
||||
{
|
||||
$canard = new Tag();
|
||||
/*$canard = new Tag();
|
||||
$canard->label = "Canard";
|
||||
$canard->slug = Str::slug($canard->label);
|
||||
$canard->save();
|
||||
|
|
@ -53,6 +53,6 @@ class TagsSeeder extends Seeder
|
|||
$paniers = new Tag();
|
||||
$paniers->label = "Paniers garnis";
|
||||
$paniers->slug = Str::slug($paniers->label);
|
||||
$paniers->save();
|
||||
$paniers->save();*/
|
||||
}
|
||||
}
|
||||
|
|
|
|||
20
public/b-o/js/app.js
vendored
20
public/b-o/js/app.js
vendored
|
|
@ -69281,10 +69281,10 @@ __webpack_require__.r(__webpack_exports__);
|
|||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/views/front/canard/sass/app.scss":
|
||||
/*!****************************************************!*\
|
||||
!*** ./resources/views/front/canard/sass/app.scss ***!
|
||||
\****************************************************/
|
||||
/***/ "./resources/views/front/jeusselin/sass/app.scss":
|
||||
/*!*******************************************************!*\
|
||||
!*** ./resources/views/front/jeusselin/sass/app.scss ***!
|
||||
\*******************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
|
|
@ -69293,15 +69293,15 @@ __webpack_require__.r(__webpack_exports__);
|
|||
/***/ }),
|
||||
|
||||
/***/ 0:
|
||||
/*!**********************************************************************************************************!*\
|
||||
!*** multi ./resources/js/app.js ./resources/sass/app.scss ./resources/views/front/canard/sass/app.scss ***!
|
||||
\**********************************************************************************************************/
|
||||
/*!*************************************************************************************************************!*\
|
||||
!*** multi ./resources/js/app.js ./resources/sass/app.scss ./resources/views/front/jeusselin/sass/app.scss ***!
|
||||
\*************************************************************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
__webpack_require__(/*! D:\laragon\www\boutique-du-canard\resources\js\app.js */"./resources/js/app.js");
|
||||
__webpack_require__(/*! D:\laragon\www\boutique-du-canard\resources\sass\app.scss */"./resources/sass/app.scss");
|
||||
module.exports = __webpack_require__(/*! D:\laragon\www\boutique-du-canard\resources\views\front\canard\sass\app.scss */"./resources/views/front/canard/sass/app.scss");
|
||||
__webpack_require__(/*! D:\laragon\www\boutique-jeusselin\resources\js\app.js */"./resources/js/app.js");
|
||||
__webpack_require__(/*! D:\laragon\www\boutique-jeusselin\resources\sass\app.scss */"./resources/sass/app.scss");
|
||||
module.exports = __webpack_require__(/*! D:\laragon\www\boutique-jeusselin\resources\views\front\jeusselin\sass\app.scss */"./resources/views/front/jeusselin/sass/app.scss");
|
||||
|
||||
|
||||
/***/ })
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"/b-o/js/app.js": "/b-o/js/app.js",
|
||||
"/b-o/css/app.css": "/b-o/css/app.css",
|
||||
"/canard/css/app.css": "/canard/css/app.css",
|
||||
"/canard/js/app.js": "/canard/js/app.js"
|
||||
"/jeusselin/css/app.css": "/jeusselin/css/app.css",
|
||||
"/jeusselin/js/app.js": "/jeusselin/js/app.js"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -105,7 +105,9 @@
|
|||
Publié ?
|
||||
</label>
|
||||
</div>
|
||||
@include('bo.products.' . Str::snake($product_type))
|
||||
@if(!empty($product_type))
|
||||
@include('bo.products.' . Str::snake($product_type))
|
||||
@endif
|
||||
</form>
|
||||
@endsection
|
||||
|
||||
|
|
|
|||
|
|
@ -178,7 +178,9 @@
|
|||
Publié ?
|
||||
</label>
|
||||
</div>
|
||||
@include('bo.products.' . Str::snake($product->product_type))
|
||||
@if(!empty($product_type))
|
||||
@include('bo.products.' . Str::snake($product->product_type))
|
||||
@endif
|
||||
</form>
|
||||
@endsection
|
||||
|
||||
|
|
|
|||
|
|
@ -90,10 +90,11 @@ Route::namespace('App\Http\Controllers\Bo')
|
|||
//route ajoutée avant la déclaration de route resource sinon la forme /products/{product} l'emporte lors du routage
|
||||
Route::get('/products/starred', [\App\Http\Controllers\Bo\ProductsController::class, 'starred'])
|
||||
->name('products.starred');
|
||||
Route::resource('products', '\App\Http\Controllers\Bo\ProductsController')->except([
|
||||
'create'
|
||||
]);
|
||||
Route::get('/products/create/{product_type}', [\App\Http\Controllers\Bo\ProductsController::class, 'create'])
|
||||
// Route::resource('products', '\App\Http\Controllers\Bo\ProductsController')->except([
|
||||
// 'create'
|
||||
// ]);
|
||||
Route::resource('products', '\App\Http\Controllers\Bo\ProductsController');
|
||||
Route::get('/products/create/{product_type?}', [\App\Http\Controllers\Bo\ProductsController::class, 'create'])
|
||||
->name('products.create');
|
||||
|
||||
Route::resources([
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue