首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在laravel项目上,未定义工艺路线[购物车]

在我的laravel购物车上,我创建了一个删除函数,在使用json或dd函数进行测试时似乎还可以,但在尝试返回路由购物车视图Route [cart] not defined.时,哪里会出现问题。当我只想删除同一产品的1个项目时,该函数也需要优化,这意味着需要“删除1个项目”和“删除所有项目”每行。

购物车模型:

代码语言:javascript
运行
AI代码解释
复制
class Cart 
{
   public $items = null;
   public $totalQty = 0;
   public $totalPrice = 0;

   public function __construct($oldCart)
   {
     if ($oldCart) {
        $this->items = $oldCart->items;
        $this->totalQty = $oldCart->totalQty;
        $this->totalPrice = $oldCart->totalPrice;
     }
   }

   public function add($item, $id)
   {
     $storedItem = ['qty' => 0, 'price' => $item->price, 'item' => $item, 'imagePath' => $item->imagePath];

     if ($this->items ) {

            if (array_key_exists($id, $this->items)) {
                 $storedItem = $this->items[$id];
             }
         }
         $storedItem['qty']++;
         $storedItem['price'] = $item->price * $storedItem['qty'];
         $storedItem['imagePath'] = $item->imagePath;
         $this->items[$id] = $storedItem;
         $this->totalQty++;
         $this->totalPrice += $item->price;
    }

    public function delete($id) {

        if(!$this->items || !isset($this->items[$id])) {
            return false;  // maybe throw an exception here?
        }
data of $this->items, create a method to calculate the totals when needed.
        $this->totalQty -= $this->items[$id]['qty'];
        $this->totalPrice -=  $this->items[$id]['price'] * $this->items[$id]['qty'];

        // and remove the item
        unset($this->items[$id]);
    }
}

购物车控制器:

代码语言:javascript
运行
AI代码解释
复制
class ProductController extends Controller

{
    /**
    *@return \Illuminate\Http\Response
    */
    public function index()
    {
        $products = Product::all();
        return view('home', ['products'=> $products]);
    }

    public function getAddToCart(Request $request, $id) 
    {
        $product = Product::find($id);
        $oldCart = Session::has('cart') ? Session::get('cart') : null;
        $cart = new Cart($oldCart);
        $cart->add($product, $product->id);
        
        $request->session()->put('cart', $cart);
        return redirect()->route('home');
    }

    public function getCart()
    {
        if (!Session::has('cart')) {
            return view('cart');
        }
        $oldCart = Session::get('cart');

        $cart = new Cart($oldCart); 
        return view('cart', ['products' => $cart->items, 'totalPrice' => $cart->totalPrice]);
    }

    /**
     * Remove the specified resource from storage.
     * @param int $id
     * @return \Illuminate\Http\Request
     */
   public function destroy(Request $request, $id) {
        $oldCart = Session::has('cart') ? Session::get('cart') : null;
        $cart = new Cart($oldCart);
        $cart->delete($id);
        $request->session()->put('cart', $cart);
        return redirect()->route('cart');

        
        //return response()->json(array( 'totalqty' => $cart->totalQty, 'totalPrice' => $cart->totalPrice));
        //{"totalqty":0,"totalPrice":-222000}
    }

}

购物车视图:

代码语言:javascript
运行
AI代码解释
复制
<form method="POST" action="{{ route('cart.destroy', ['id' => $product['item']['id']]) }}" > 
            @csrf
            {{ method_field('DELETE') }}
            <input type="submit" value="Delete all items" onclick="return confirm('Are you sure?')" class="btn btn-danger" />
            <input type="submit" value="Delete 1 item" onclick="return confirm('Are you sure?')" class="btn btn-danger" />
      </form>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-03 02:23:47

我解决了从return redirect()->route('cart');return redirect()->route('shoppingCart');的路由购物车的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62707531

复制
相关文章
Rust:从嵌套循环中退出
在C语言中,我们常用goto语句来在错误条件下跳转到函数的数据清理部分。这种用法的好处尤其体现在“错误发生在嵌套循环”的时候,我们不用每一层循环都加一个标志位,逐级退出。
灯珑LoGin
2022/11/16
1.4K0
如何从结果集中获得随机结果
全表扫描(Full table Scan) 全表扫描返回表中所有的记录。 执行全表扫描,Oracle读表中的所有记录,考查每一行是否满足WHERE条件。Oracle顺序的读分配给该表的每一个数据块,这样全表扫描能够受益于多块读. 每个数据块Oracle只读一次.
数据和云01
2018/09/10
1.6K0
while循环嵌套while循环
《代码大全》推荐先用伪代码来写框架,从最上层思考可以将抽象能力最大化,不会先陷入任何编程语言的实现细节中,通俗地说就是在蓝图层面解决问题。
不会飞的小鸟
2021/07/30
3.5K0
Python学习笔记:第2天while循
while循环是先判断给的条件是否为真,如果真则执行循环体中的while语句,否则跳出循环;执行循环体之后再次判断条件是否为真。
py3study
2020/01/19
4920
【Python】循环语句 ② ( while 嵌套循环 | 代码示例 - while 嵌套循环 )
while 嵌套循环 也是基于 空格缩进 , Python 中基于 空格缩进 判定代码逻辑的层次关系 ;
韩曙亮
2023/10/11
4220
【Python】循环语句 ② ( while 嵌套循环 | 代码示例 - while 嵌套循环 )
while、do...while、嵌套循环复习
        首先进行循环条件判断,如果为 true,则执行{ }里的语句,如果为 false,则直接执行while后的语句,不进入循环体。
zxmttkx
2022/12/02
1.3K0
while、do...while、嵌套循环复习
sql的嵌套查询_嵌套查询和嵌套结果的区别
SQL连接查询和嵌套查询详解 连接查询 若一个查询同时涉及两个或两个以上的表,则称之为连接查询。连接查询是数据库中最最要的查询,
全栈程序员站长
2022/09/22
4K0
sql的嵌套查询_嵌套查询和嵌套结果的区别
MySQL 嵌套查询_嵌套查询和嵌套结果的区别
where course.cno=sc.cno and course.cname=’数据库’ and grade>=80)[/code](3)查询计算机系最高成绩。
全栈程序员站长
2022/09/22
4.4K0
sql 嵌套while需要注意的问题
DECLARE @i INT ,@j INT SET @i=1 set @j=1 WHILE @i<4     BEGIN         PRINT 'satrt  i:'+CAST(@i AS varchar)     WHILE @j<4         BEGIN             PRINT 'j:'+CAST(@j AS varchar)             SET @j=@j+1         END     set @j=1     set @i=@i+1     END   你
跟着阿笨一起玩NET
2018/09/18
6940
循环中的异步&&循环中的闭包
foo函数下的index输出5,全局下的index不存在 现在我们把var 换为let
陌上寒
2019/04/02
1.6K0
循环中的异步&&循环中的闭包
Eclipse中java获得mysql的查询结果集
本文介绍了在Java中如何获取MySQL数据库的查询结果集,并对代码进行了详细的解释和注释。包括使用DriverManager类来加载数据库驱动、使用Connection对象创建与数据库的连接、使用Statement对象创建SQL语句、使用ResultSet对象获取查询结果集、使用next()方法遍历结果集、使用getXXX()方法获取结果集中的数据以及使用close()方法关闭数据库连接。
别先生
2017/12/29
4.9K0
Eclipse中java获得mysql的查询结果集
如何通过神经风格转换获得漂亮的结果
最近开始对使用机器学习生成中型个人资料图片感兴趣。深入到了神经风格转换领域。尽管NST在概念上很容易理解,但要生成高质量图像却出奇地困难。为了获得良好的结果,必须正确实施许多复杂的细节和未提及的技巧。在本文中,将深入研究神经风格转换,并详细研究这些技巧。
代码医生工作室
2020/04/14
1.5K0
如何通过神经风格转换获得漂亮的结果
MYSQL IN EXISTS LEFT JOIN 结果不同的问题?
随着问问题的同学越来越多,公众号内部私信回答问题已经很困难了,所以建立了一个群,关于各种数据库的问题都可以,目前主要是 POSTGRESQL, MYSQL ,MONGODB ,POLARDB ,REDIS 等,期待你的加入,加群请添加微信liuaustin3.
AustinDatabases
2023/02/28
1.8K0
MYSQL IN EXISTS LEFT JOIN 结果不同的问题?
从一个多层嵌套循环中直接跳出
Java中如何从一个多层嵌套循环中退出,例如下面,有两个循环,break只能退出一个for循环,不能直接跳过第二个for循环
硬核编程
2020/07/23
9260
11.4.6 集合嵌套查询与嵌套结果(结果集) -《SSM深入解析与项目实战》
项目中所有的源码都可以在此链接的仓库中找到:https://github.com/chenhaoxiang/uifuture-ssm
谙忆
2021/10/26
4820
4个方面详细讲解Python中while循环嵌套
故事梗概: 有一天你的女朋友她又生气了,让你说3遍“媳妇,我错了”,这个程序是不是循环即可?但是如果你女朋友说:还要刷今晚吃饭的碗,这个程序又该怎么写呢?
python自学网
2022/03/26
1.6K0
4个方面详细讲解Python中while循环嵌套
While 与 do while 的区别
Do while和while的区别就是do while不管条件是否成立,都至少执行一次。
算法与编程之美
2023/01/03
9890
如何在 Python 中将嵌套的 OrderedDict 转换为 Dict?
Python 是一种流行的编程语言,广泛用于各种应用程序,包括 Web 开发、数据科学和机器学习。它的简单性、灵活性和易用性使其成为所有级别开发人员的绝佳选择。使Python脱颖而出的功能之一是OrderedDict类,它是一个字典子类,可以记住插入项目的顺序。但是,在某些情况下,我们可能需要将嵌套的 OrderedDict 转换为常规字典,以便于进一步处理数据。
很酷的站长
2023/08/11
4980
如何在 Python 中将嵌套的 OrderedDict 转换为 Dict?
如何在提升编程能力的同时,获得些福利
开发者头条是一个聚合了有很多优秀的技术文章的网站。开发者头条上的 IO币 可以换取一些礼物。礼物有键盘、鼠标、图书等。
前端GoGoGo
2018/08/24
3440
点击加载更多

相似问题

使用空格设置帮助菜单的格式

118

控制argparse帮助参数列表的格式?

460

python argparse中的重新格式化帮助

20

Python argparse:预格式化的帮助文本?

20

限制Argparse帮助输出

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文