dimanche 1 mars 2020

Cannot declare class App\User, because the name is already in use Laravel

I want to add user address in address table and want to update the address_id in user table for that i'm using user model and address model, data is being saved in address table but when i use User model in Address Repository

use App\Models\User;

i get

Cannot declare class App\User, because the name is already in use

Here is my code :

<?php 
namespace App\Repositories;

use App\Models\Addresses;
use App\Models\User;
use App\Contracts\AddressContract;
use Illuminate\Database\QueryException;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Doctrine\Instantiator\Exception\InvalidArgumentException;

class AddressRepository extends BaseRepository implements AddressContract
{
    /**
     * AttributeRepository constructor.
     * @param Attribute $model
     */
    public function __construct(Addresses $model)
    {
        parent::__construct($model);
        $this->model = $model;
    }


    public function addAddress(array $params)
    {
        try {

            $Addresses = new Addresses($params);
            $Addresses->save();
            $addressId = $Addresses->id;
            $userID=auth()->user()->id;
            if($params['is_primary_address']==1)
            {   
                User::where('id',$userID)->update(['address_id'=>$addressId]);
            }
            return $Addresses;
            }
            catch (QueryException $exception) {
            throw new InvalidArgumentException($exception->getMessage());
        }
    }
}

ProductController.php

<?php

namespace App\Http\Controllers\Site;
use App\Contracts\AttributeContract;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Contracts\ProductContract;
use App\Contracts\AddressContract;
use Cart;
use Validator;

class ProductController extends Controller
{ 
    protected $productRepository;
    protected $attributeRepository;
    protected $addressRepository;
    public function __construct(ProductContract $productRepository, AttributeContract $attributeRepository, AddressContract $addressRepository)
{  
    $this->productRepository = $productRepository;
    $this->attributeRepository = $attributeRepository;
    $this->addressRepository = $addressRepository;
}

public function addUserAddress(Request $request)
{
    $customer_name=$request->customer_name;
    $customer_address=$request->customer_address; 
    $country=$request->country; 
    $city=$request->city;
    $zip_code=$request->zip_code;  
    $state=$request->state; 
    $address_type=$request->address_type; 
    $is_primary_address=$request->primary_address; 
    $userID=auth()->user()->id;
    $data=array('name'=>$customer_name,'address'=>$customer_address,'country'=>$country,'state'=>$state,'city'=>$city,'address_type'=>$address_type,'user_id'=>$userID,'is_primary_address'=>$is_primary_address);
    $userAddress  = $this->addressRepository->addAddress($data);
    return redirect()->back()->with('message', 'Address Added');
}
}


via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire