/** * Define your route model bindings, pattern filters, etc. * * @param \Illuminate\Routing\Router $router * @return void */ public function boot(Router $router) { parent::boot($router); // Route model binding for Article // $router->model('articles', 'App\Article'); $router->bind('articles', function ($id) { return Article::findOrFail($id); }); $router->bind('tags', function ($name) { return Tag::whereName($name)->firstOrFail(); }); $router->bind('products', function ($id) { return Product::findOrFail($id); }); $router->bind('attributes', function ($id) { return Attribute::findOrFail($id); }); $router->bind('users', function ($id) { return User::findOrFail($id); }); }
/** * Find an attribute by id. * * @param int $id * @return Attribute * @throws ModelNotFoundException */ public function findById($id) { return Attribute::findOrFail($id); }
public function calculatePrice(Request $request) { $product = Product::findOrFail($request->input('product_id')); $attributes = $request->input('attribute'); $add_price = []; foreach ($attributes as $key => $attribute) { $add_price[] = Attribute::findOrFail($attribute)->add_price; } return ['amount' => $product->price + array_sum($add_price), 'final_amount' => $product->price - $product->price * $product->discount / 100 + array_sum($add_price), 'discount_amount' => $product->price * $product->discount / 100]; }