Как установить сессию с помощью Axios в Vue.js и Laravel - PullRequest
0 голосов
/ 14 мая 2018

Когда я пытаюсь добавить корзину с помощью axios в vue.js и laravel, я не получаю никакой ошибки, но возвращает пустой массив в ответе, а сеанс не настраивается.

Vue - запрос Axios

cartSession(){
  if(this.checked){
    axios.post('http://localhost:8000/cart/cart/'+this.checked[0],{
      'id':this.checked[0],
      'category':this.checked[2],
      'service_plan':this.checked[3],
      'price':this.checked[1],
      'user_id':this.checked[4]
     })
     .then(data=>this.sessionCart = data)
     .catch(error => {
        console.log(error.message);
     })
  }else {
    this.sessionCart = " ";
  }
}

Контроллер

public function cart(Request $request,$id){
  $session = $request->session();
  $service = array(
    'id'=>$request->id,
    'category'=>$request->category,
    'service_plan'=>$request->service_plan,
    'price'=>$request->price,
    'user_id'=>$request->user_id
  );
  $services = (object)$service;
  $oldCart = $session->has('cart') ? $session->get('cart') : null;
  $carts = new CartSession($oldCart);
  $carts->add($service,$id);
  $session->put('cart', $carts);
  $sessionData = $session->get('cart');
  return request()->json(200,$oldCart);
  // dd($service);
  //return request()->json(200,$service);
}

Модель корзины

class CartSession extends Model
{

    public $serviceCategory = null;
    public $servicePlan = 0;
    public $price = 0;
    public $totalPrice = 0;
    public $serviceTotal = 0;

    public function __construct($oldCart)
    {
        //parent::__construct($attributes);
        if($oldCart){
            $this->serviceCategory = $oldCart->serviceCategory;
            $this->servicePlan = $oldCart->servicePlan;
            $this->price = $oldCart->price;
            $this->totalPrice = $oldCart->totalPrice;
            $this->serviceTotal = $oldCart->serviceTotal;
        }
    }
    public function add($item,$id){

        $storedItem = ['service_qty'=> 0,'category' => $item['category'],'price'=>$item['price']];
        if ($this->serviceCategory){
            if(array_key_exists($id,$this->serviceCategory)){
                $storedItem = $this->serviceCategory[$id];
            }
        }
        //dd($storedItem);
        $storedItem['service_qty']++;
        $storedItem['price'] = $item['price'] * $storedItem['service_qty'];
        $this->serviceCategory[$id] = $storedItem;
        $this->serviceTotal++;
        $this->totalPrice += $item['price'];
        $this->servicePlan = $item;
        return $item;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...