mercredi 31 mars 2021

Unable To Add Photos in Table By Using Morphmany relation Laravel any help would be apricated

this Is the Model which I am using for inserting photos in Photos Table by use of MorphMany Realtions in laravel in Object Model

public function photos(){ return $this->morphMany('App\Photo', 'photoable');}

photable function in Photo model

 public function photoable(){

return $this->morphTo();

}

form for adding photos.

<input type="file" name="objectPictures[]" id="objectPictures" multiple><br>

here I am inserting the Object in objects table along with Photos in Photos table. Object inserted successfully but photos are not inserting.

public function saveObjectby(Request $request)
{
    $inputs=request()->validate([
        'name'=> 'required|min:8|max:255',
        'description'=> 'required',
    ]);

    $object = new TouristObject();

    $object->user_id = $request->user()->id;
    $object->name = $request->input('name');
    $object->package_id = $request->input('package_id');
    $object->description = $request->input('description');
    $object->save($inputs);

    if ($request->hasFile('objectPictures'))
    {
        $this->validate($request, \App\Photo::imageRules($request,'objectPictures')); 
        foreach($request->file('objectPictures') as $picture)
        {
            $path = $picture->store('objects', 'public');
            $photo = new Photo;
            $photo->path = $path;
            $object->photos()->save($photo);
        }
    }
}


via Chebli Mohamed

How to create search filter while paginate in laravel 5? [duplicate]

$lists = UserRoles::where('role_id', '!=',1)
    ->whereHas('users', function($offerQuery) use ($search){
        $offerQuery->where(function ($q) use($search) {
            $q->where('user_name', 'LIKE', '%',$search.'%')
            ->orWhere('user_mobile_number', 'like', '%' . $search . '%');
        });
        $offerQuery->where('user_status', '!=', 'Delete');
    })->paginate(50);

In the above query what am I trying to do is if I try this query without search filter then It works but I also want a search filter and when I hit this query then it shows Undefined variable: search. I don't know why? Please help me.

Thank You



via Chebli Mohamed

laravel debugbar package installaton failed

I am trying to install the laravel package debugbar to my website using this command

composer require barryvdh/laravel-debugbar --dev

package link: https://github.com/barryvdh/laravel-debugbar

But it shows error on the terminal

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

[ErrorException] file_get_contents(): Filename cannot be empty

I have searched a lot but cannot find the proper solution, I have also tried other testing packages like a telescope, clockwork but nothing works and installed.

my composer.json file

{ "name": "laravel/laravel", "description": "The Laravel Framework.", "keywords": ["framework", "laravel"], "license": "MIT", "type": "project",

"require": {
    "php": ">=7.0.0",
    "ext-curl": "*",
    "authorizenet/authorizenet": "~1.9.6",
    "barryvdh/laravel-dompdf": "^0.8.4",
    "codeitnowin/barcode": "^3.0",
    "cornford/googlmapper": "2.*",
    "fideloper/proxy": "~3.3",
    "ghattrell/activecampaign": "^1.1",
    "google/recaptcha": "^1.2",
    "intervention/image": "^2.5",
    "jrl05k/laravel-under-construction": "^1.0",
    "jrm2k6/cloudder": "0.6.0",
    "kyslik/column-sortable": "5.5.*",
    "laracasts/utilities": "^3.0",
    "laravel/framework": "5.5.*",
    "laravel/socialite": "^3",
    "laravel/tinker": "~1.0",
    "laravelcollective/html": "^5.4.0",
    "larsjanssen6/underconstruction": "^4.0",
    "pusher/pusher-php-server": "^3.2",
    "spatie/geocoder": "^3.3",
    "symfony/polyfill-iconv": "^1.9",
    "tightenco/ziggy": "v0.6.8.1",
    "tjphippen/docusign": "0.3.*@dev",
    "tucker-eric/docusign-rest-client": "^1.0",
    "twilio/sdk": "*",
    "werneckbh/laravel-qr-code": "^0.1.3"
},
"require-dev": {
    "filp/whoops": "~2.0",
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "~1.0",
    "phpunit/phpunit": "~6.0",
    "symfony/thanks": "^1.0"
},
"autoload": {
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "psr-4": {
        "App\\": "app/"

    }
},

"autoload-dev": {
    "psr-4": {
        "Tests\\": "tests/"
    }
},
"extra": {
    "laravel": {
        "dont-discover": [
        ]
    }
},
"scripts": {
    "post-root-package-install": [
        "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "@php artisan key:generate"
    ],
    "post-autoload-dump": [
        "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
        "@php artisan package:discover"
    ]
},
"config": {
    "preferred-install": "dist",
    "sort-packages": true,
    "optimize-autoloader": true,
    "platform": {
        "php": "7.0.0"
    }
} }

laravel framework : 5.5

PHP installed on my system: 7.4

I have even removed kylekatarnls folder from the vendors folder and tried again but still, nothing works.



via Chebli Mohamed

I am getting this error with this code for edited method

enter image description here

enter image description here



via Chebli Mohamed

Extra blank print page in Laravel

the document shows that there is only one page in my laravel project after deploying but after the print button is clicked the print window shows that there are two sheets of pages to be print and the second sheet of page is blank except for the header and footer.

Print window



via Chebli Mohamed

mardi 30 mars 2021

php laravel excel two parameter not accept ? why

PhpOffice\PhpSpreadsheet\Writer\Exception: No writer found for type 1 in file C:\xampp\htdocs\api_product_catelog\vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\IOFactory.php on line 47 $this->company $this->catogory value both together then not given in output! request in get sucess fully value both company id or catagery id but query not working for get it's work only for company id

the total code is there

<?php

namespace App\Exports;

use App\Models\Product;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithStrictNullComparison;
use PhpOffice\PhpSpreadsheet\IOFactory;



class ProductsExport implements  FromQuery, WithHeadings, ShouldAutoSize ,WithStrictNullComparison
{
    /**
    * @return \Illuminate\Support\Collection
    */
     use Exportable;

    public function forCompany(int $comapny)
    {
        $this->company = $comapny;
        
        return $this;
    }
    public function forCategory(int $category)
    {
        $this->category = $category;
        
        return $this;
    }
    
public function headings(): array
    {
        return [
            'id',
            'product_name',
            'category_id',
            'brand_id',
            'product_hsn_sac',
            'search_keyword',
            'price',
            'sale',
            'new',
            'offer_price',
            'gst_percentage',
            'detail',
            'advantages',
            'characteristics',
            'specification',
            'additional_info',
            'description',
        ];
    }
     public function query($requestData = null) {
        // var_dump($requestData);die();
        if ($this->category != 0) {
            $product = Product::select('id', 'product_name', 'category_id',  'brand_id', 'product_hsn_sac', 'search_keyword', 'price', 'sale', 'new','offer_price', 'gst_percentage',  'detail', 'advantages', 'characteristics', 'specification', 'additional_info','description')
               ->where('company_id',$this->company)
               ->where('category_id', $this->category);
        }else {
             $product = Product::select('id', 'product_name', 'category_id',  'brand_id', 'product_hsn_sac', 'search_keyword', 'price', 'sale', 'new','offer_price', 'gst_percentage',  'detail', 'advantages', 'characteristics', 'specification', 'additional_info','description')
                ->where('company_id',$this->company);
        }


    return $product;
    }

    public function map($product): array
    {
        return [
            $product->id,
            $product->product_name,
            $product->category_id,
            $product->brand_id,
            $product->product_hsn_sac,
            $product->search_keyword,
            $product->price,
            $product->sale,
            $product->new,
            $product->offer_price,
            $product->gst_percentage,
            $product->detail,
            $product->advantages,
            $product->characteristics,
            $product->specification,
            $product->additional_info,
            $product->description,
        ];
    }

    
}


via Chebli Mohamed

How i can get weekend date by giving specific date in laravel?

I am trying to get weekend date of 17-03-2021

Currently in am getting weekend date of current week i want to get by specific date.

Carbon::now()->endOfWeek()->format('d-m-Y')



via Chebli Mohamed

Raw query parameters for IN clause Laravel

I've using Laravel DB::connection() for raw query, facing issue while passing parameters to IN clause.

web.php

Route::get("/track","App\Http\Controllers\Track@index");

view track.php

<form action="/track" method="post">

<textarea class="lined" rows="11" cols="60" name="tracking_id[]" id="output" value=""></textarea>

</form>

When html form submitted i am getting this value as a n array Array ( [_token] => JK4lmAZRq4O8Q3g14zy80BECrYEJpLX2vpbkkXvL [tracking_id] => Array ( [0] => UK484532537EE LA270424333EE ) )

Controller

public function index(Request $request){
//    prin
$tk = implode(',', $request->tracking_id);
$tracking_id = $request->input("tracking_id");
   $data = $request->all();
    $finalArray = array();
    foreach($data as $key=>$value)
    {
        array_push($finalArray, array(
                        'tracking_id'=>$value['tracking_id'])
        );
    }
    print_r($finalArray);
    $TrackModel = new TrackModel();
   $trackedAllData = $TrackModel->gettrackedAllData($finalArray);
  }

i want to pass this finalArray value to modal

Track_Model.php

 public static function gettrackedAllData($finalArray){

    return DB::connection('mysql')->select('SELECT a.awb_number, a.full_awb_number, a.service_type, b.country_code AS From_country, b.city AS From_city,c.city AS To_city, c.country_code AS To_country,MAX(s.created_at) AS created_at, datediff( max(s.created_at), min(s.created_at)) as Aging FROM customer_shippments a LEFT JOIN addresses b ON a.from_address = b.id LEFT JOIN addresses c ON a.to_address = c.id LEFT JOIN statuses s ON s.awb_number = a.awb_number WHERE a.full_awb_number IN ("'.$finalArray.'") GROUP BY s.awb_number');
  }


via Chebli Mohamed

lundi 29 mars 2021

Cannot generate a new Laravel app key: No application encryption key has been specified

If I run php artisan key:generate I get this error:

No application encryption key has been specified.

Running php artisan key:generate is usually what fixes the error above, not what triggers it.

I tried removing the value entirely from the .env but that didn't help.

How do I fix this?



via Chebli Mohamed

Laravel with() together Table or Variable Name

I was reading a blog related Repository Pattern. I saw use of withBlogs method.

public function index()
{
    $blogs = $this->blogRepository->all();

    return view('blog')->withBlogs($blogs);
}

I never see something like this before. What is the purpose of it or what it's doing?



via Chebli Mohamed

How To update one array values to another array in mongoDB document

Can any one help me to update query Account -> details bank_name: SBI & acc_no: 98988988 to HDFC in MongoDB sub array Dynamically

{
"name": "Ravi",
"user_name": "ravirr",
"email": "ravi@gmail.com",
"accounts": [{
        "bank_name": "HDFC",
        "image": "hdfc.png",
        "details": [{
            "acc_name": "HFDC 1",
            "acc_no": "108889855",
            "status": 1,
        }, {
            "acc_name": "HFDC 1",
            "acc_no": "108889855",
            "status": 1,
        }
        ]
    }, {
        "bank_name": "SBI",
        "image": "sbi.png",
        "details": [{
            "acc_name": "SBI 1",
            "acc_no": "98988988",
            "status": 1,
        }, {
            "acc_name": "SBI 2",
            "acc_no": "8585888888",
            "status": 1,
        }
        ]
    }
    }

enter image description here

some can help to do this thanks



via Chebli Mohamed

Can not set up Xdebug for any ide using Laradock + PHP7.2 + PHPStorm/VSCode + Xdebug2.9.8/Xdebug3.0.3 working with Laravel project from WSL

I have a big issue for setting up xDebug in my Laravel project + laradock. I have tried with PHP STORM and also with VSCODE.

I also have tried using xdebug3, writing the same settings on both xdebug.ini but with the new xDebug3 setences.

Maybe should I have to set up something else inside WSL ?

I have tried with a lot of combinations on my xdebug.ini but without success.

Below my configurations file:

php-fpm/xdebug.ini

xdebug.remote_host="host.docker.internal"
xdebug.remote_connect_back=0
xdebug.remote_port=9000
xdebug.idekey=PHPSTORM

xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.cli_color=1
xdebug.profiler_enable=0
xdebug.profiler_output_dir="~/xdebug/phpstorm/tmp/profiling"

xdebug.remote_handler=dbgp
xdebug.remote_mode=req

xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
xdebug.var_display_max_depth=-1

php-workspace/xdebug.ini


xdebug.remote_host="host.docker.internal"
xdebug.remote_connect_back=0
xdebug.remote_port=9000
xdebug.idekey=PHPSTORM

xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.cli_color=1
xdebug.profiler_enable=0
xdebug.profiler_output_dir="~/xdebug/phpstorm/tmp/profiling"

xdebug.remote_handler=dbgp
xdebug.remote_mode=req

xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
xdebug.var_display_max_depth=-1

LARADOCK FOLDER

...
WORKSPACE_INSTALL_XDEBUG=true
...
PHP_FPM_INSTALL_XDEBUG=true
...
# Create an account on blackfire.io. Don't enable blackfire and xDebug at the same time. # visit https://blackfire.io/docs/24-days/06-installation#install-probe-debian for more info.
INSTALL_BLACKFIRE=false

LARADOCK/PHP-FPM/Dockerfile

###########################################################################
# xDebug:
###########################################################################

ARG INSTALL_XDEBUG=false

RUN if [ ${INSTALL_XDEBUG} = true ]; then \
  # Install the xdebug extension
  if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
    pecl install xdebug-2.5.5; \
  else \
    if [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \
      pecl install xdebug-2.9.0; \
    else \
      pecl install xdebug-2.9.8; \
    fi \
  fi && \
  docker-php-ext-enable xdebug \
;fi

# Copy xdebug configuration for remote debugging
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini

RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /usr/local/etc/php/conf.d/xdebug.ini && \
    sed -i "s/xdebug.remote_enable=0/xdebug.remote_enable=1/" /usr/local/etc/php/conf.d/xdebug.ini && \
    sed -i "s/xdebug.cli_color=0/xdebug.cli_color=1/" /usr/local/etc/php/conf.d/xdebug.ini

LARADOCK/WORKSPACE/Dockerfile

###########################################################################
# xDebug:
###########################################################################

USER root

ARG INSTALL_XDEBUG=false

RUN if [ ${INSTALL_XDEBUG} = true ]; then \
  # Install the xdebug extension
  if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
    pecl install xdebug-2.5.5; \
  else \
    if [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \
      pecl install xdebug-2.9.0; \
    else \
      if [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "1" ]; then \
        pecl install xdebug-2.9.8; \
      else \
        if [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ]; then \
          pecl install xdebug-2.9.8; \
        else \
          #pecl install xdebug; \
          echo "xDebug 3 required, not supported."; \
        fi \
      fi \
    fi \
  fi && \
  echo "zend_extension=xdebug.so" >> /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-xdebug.ini \
;fi

# ADD for REMOTE debugging
COPY ./xdebug.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini

RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini && \
    sed -i "s/xdebug.remote_enable=0/xdebug.remote_enable=1/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini && \
    sed -i "s/xdebug.cli_color=0/xdebug.cli_color=1/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini

laradock/docker-compose.yml


### Workspace Utilities ##################################
    workspace:
      build:
        context: ./workspace
        args:
           ...
          - INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG}
          ...
### PHP-FPM ##############################################
    php-fpm:
      build:
        context: ./php-fpm
        args:
          ...
          - INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
          ...

PHPSTORM SETTINGS enter image description here enter image description here

WINDOWS SETTINGS

enter image description here

enter image description here

PHPINFO()

enter image description here

enter image description here



via Chebli Mohamed

Carbon::now() Giving Wrong Data

I am working with Carbon in Laravel.

Problem: I need to make a carbon date using Carbon::now()->month() function. For all other months, it is working fine. But when I am trying to make date for February 2021 it is always giving me the date of March 2021.

Below is My Function

function findStartEndDateOfAMonth($month, $year)
{
    //Here $month = 2, $year = 2021
    $days_in_month = cal_days_in_month(CAL_GREGORIAN, $month, $year);
    $start_time    = Carbon::now()->year($year)->month($month)->day(1)->hour(0)->minute(0)->second(0);

    $end_time      = Carbon::now()->year($year)->month($month)->day($days_in_month)->hour(23)->minute(59)->second(59);
    return [
      'start_time'    => $start_time,
      'end_time'      => $end_time,
      'days_in_month' => $days_in_month
    ];
} 

And here is the output:

{
  "code": 200,
  "message": "Successful",
  "time": {
   "start": {
      "date": "2021-03-01 00:00:00.000000",
      "timezone_type": 3,
      "timezone": "Asia/Dhaka"
    },
    "end": {
      "date": "2021-03-28 23:59:59.000000",
      "timezone_type": 3,
      "timezone": "Asia/Dhaka"
    }
  }
}

the similar result is giving for March (when I am giving $month = 3)

{
  "code": 200,
  "message": "Successful",
  "time": {
   "start": {
      "date": "2021-03-01 00:00:00.000000",
      "timezone_type": 3,
      "timezone": "Asia/Dhaka"
    },
    "end": {
      "date": "2021-03-31 23:59:59.000000",
      "timezone_type": 3,
      "timezone": "Asia/Dhaka"
    }
  }
}

I can't figure out the issue here.

Thanks in Advance.



via Chebli Mohamed

Emails are being send as plain HTML code {notications.hello} instead of actual text Laravel App

This is the body of my email when I'm trying to send a message:

notications.hello
notications.rest_acc_created

notications.login
notications.username

notications.password

notications.reset_pass

notications.thanks_for_using_us

It appears as plain code instead of the actual message that I want rendered.

Here is the actual code for notifications:

<?php

namespace App\Notifications;

use App\Restorant;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;

class RestaurantCreated extends Notification
{
    use Queueable;

    protected $password;
    protected $restaurant;
    protected $user;

    /**
     * Create a new notification instance.
     *
     * @return void
     */
    public function __construct($password, $restaurant, $user)
    {
        $this->password = $password;
        $this->restaurant = $restaurant;
        $this->user = $user;
    }

    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return ['mail'];
    }

    /**
     * Get the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->greeting(__('notications.hello', ['username' => $this->user->name]))
                    ->subject(__('notications.acc_create', ['app_name'=>env('APP_NAME', '')]))
                    ->line(__('notications.rest_acc_created', ['restoname'=>$this->restaurant->name]))
                    ->action(__('notications.login'), url(config('app.url').'/login'))
                    ->line(__('notications.username', ['email'=>$this->user->email]))
                    ->line(__('notications.password', ['password'=>$this->password]))
                    ->line(__('notications.reset_pass'))
                    ->line(__('notications.thanks_for_using_us'));
    }

    /**
     * Get the array representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function toArray($notifiable)
    {
        return [
            //
        ];
    }
}

Here is the .env file and my email configurations:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.ionos.es
MAIL_PORT=587
MAIL_USERNAME=*****
MAIL_PASSWORD=****
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=*****
MAIL_FROM_NAME=****

Any help I would really appreciate it. I have to say that this used to work before but it stopped working.



via Chebli Mohamed

Unable to add laravel image intervention due to conclusion error

I am trying to install laravel intervention image package in laravel 5.8 framework. I am getting a error here when ever I try

composer require intervention/image

Now I am not able to figure out what wrong I am doing here. The error message I am getting is

Problem 1 - Conclusion: remove laravel/framework v5.8.38

- Conclusion: don't install laravel/framework v5.8.38
  • laravelcollective/html 6.x-dev requires illuminate/view ^6.0|^7.0|^8.0 ->

  • don't install illuminate/view v8.7.1|don't install laravel/framework v5.8.38

    • don't install illuminate/view v8.8.0|don't install laravel/framework v5.8.38
    • don't install illuminate/view v8.9.0|don't install laravel/framework v5.8.38
    • Installation request for laravel/framework (locked at v5.8.38, required as 5.8.*) -> satisfiable by laravel/framework[v5.8.38].
    • Installation request for laravelcollective/html ^6.2 -> satisfiable by laravelcollective/html[6.x-dev, v6.2.0, v6.2.1].

Not able to get what the error is??? Newbie here in laravel so forgive any mistake.



via Chebli Mohamed

CSRF token mismatch in iframe (The Good fix ?)

Form submission in <iframe> using laravel throwing 419 CSRF token mismatch error

I came across couple of solutions but want's a secure one

Please assist which approach is better keeping good security

Thanks



via Chebli Mohamed

dimanche 28 mars 2021

Laravel 5.5 form validation numeric/integer accepts non-digital characters like "+"

I want to validate the form data if it is just numeric/integer (as in just numbers). Based on Laravel's documentation there are two specific validators for that. But the problem I'm facing is that both the validators accept non-numeric characters such as "+" or "-".

numeric

The field under validation must have a numeric value.

integer

The field under validation must be numeric.

How can I make the validation to only accept numbers and not other non-numeric characters?

'main_telephone'    => 'numeric',
'main_fax'          => 'integer',
'direct_telephone'  => 'integer',
'mobile'            => 'integer',

Below is the screenshot

enter image description here



via Chebli Mohamed

samedi 27 mars 2021

Need help on laravel 8.. Failed to open stream error

My project shows this error after uploading on server... file_put_contents(D:\laravel5\tryapp\storage\framework/sessions/BwYqrKfyavejZFnPUNb0ntJsKy5uMaoyCUzU7Srl): failed to open stream: No such file or directory help. project image



via Chebli Mohamed

vendredi 26 mars 2021

How to show Array of errors in Vue.js ? Backend Validation with Laravel

I have some complex data and I want to show the validation error array data in vue file but I can not do it because I have got some data that has an index and showing like contacts.0.name: ["...."]. please share your opinion how I can show the error

Thanks

vue file

<template>
  <div>
    <form enctype="multipart/form-data" @submit.prevent="handleSubmit">
      <div v-for="(contact, index) in contacts" :key="index" class="row">
        <div class="col col-md-3">
          <div class="form-group mb-4">
            <label for="personName">Contact Person Name</label>
            <input
              id="personName"
              v-model="contact.name"
              type="text"
              class="form-control"
            />
            <small> Want to show here the error ? </small
            >
          </div>
        </div>

        <!-- Add or Remove button -->

        <div class="col col-md-12 text-right">
          <div class="row ml-4">
            <div v-show="index == contacts.length - 1">
              <button
                class="btn btn-warning mb-2 mr-2 btn-rounded"
                @click.prevent="add"
              >
                Add More
              </button>
            </div>
            <div v-show="index || (!index && contacts.length > 1)">
              <button
                class="btn btn-danger mb-2 mr-2 btn-rounded"
                @click.prevent="remove"
              >
                Remove
              </button>
            </div>
          </div>
        </div>
      </div>
    </form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      contacts: [
        {
          name: "",
        },
      ],

      errors: [],
    };
  },
  methods: {
    handleSubmit() {
      let data = new FormData();
      data.append("contacts", JSON.stringify(this.contacts));

      Request.POST_REQ(data, "/add-institute")
        .then(() => {
          alert("success");
        })
        .catch((err) => {
          this.errors = err.response.data.errors;
        });
    },
    add() {
      this.contacts.push({
        name: "",
        email: "",
        phone: "",
        alternate_phone: "",
      });
    },
    remove(index) {
      this.contacts.splice(index, 1);
    },
  },
};
</script>

controller file


public function add_institute(Request $request) {
  $request['contacts'] = json_decode($request['contacts'], true);
  $request->validate([
      'contacts.*.name'=> 'unique:institute_contact_people|distinct',
  ]);

  ...rest of code of insert 

  return response()->json("Success...");
}

Getting Error Response data

errors: {
  contacts.0.name: ["The contacts.0.name has already been taken.", "The contacts.0.name field has a duplicate value."]
  0: "The contacts.0.name has already been taken."
  contacts.1.name: ["The contacts.1.name has already been taken.", "The contacts.1.name field has a duplicate value."]
  0: "The contacts.1.name has already been taken."
}


via Chebli Mohamed

How to check value passed with a view inside a component in laravel

Hi I'm new to laravel and stuck in this problem.

In my controller I'm returning a view with an array, which is working well

$cards = array('type' => 'news', 'value' => 'some value here');

return View::make('home')->with('cards', $cards);

inside my home.blade.php I have something like this:

<html>
<head> ... </head>
<body>
@foreach($cards as $card)
    @component('components.card')
        @slot('imageSource')
            
        @endslot

        @slot('heading')
            
        @endslot

        @slot('no_of_likes')
            
        @endslot
    @endcomponent
@endforeach
</body>
</html>

The above is also working fine.

The main problem lies in my card.blade.php, it looks something like this:

<div>
    <div class="row">
        <div class="col-md-6"><a href=""><img src="" alt="Error: MD000 (image not found)" class="img-fluid img-thumbnail"></a></div>
        <div class="col-md-6">
            <h3> </h3>
            <div class="btn-group" role="group" aria-label="Basic example">
                <button type="button" class="btn"><i class="fa fa-thumbs-up text-secondarysecondary" style="font-size: 3em; color: #808080;"></i></button>
                <button type="button" class="btn"><i class="fa fa-thumbs-down text-secondary" style="font-size: 3em; color: #808080;"></i></button>
                <button type="button" class="btn"><i class="fa fa-comment text-secondary" style="font-size: 3em; color: #808080;"></i></button>
            </div>
            <div><strong> likes</strong></div>
            
        </div>
        <hr>
    </div>

    <hr class="my-3 border-top" /> <!-- create a horizontal divider that will divide each card -->
</div>

Now the problem is I want to add one more div in the card but only if the type of the card is not news. And I have no idea on how to use if statement inside the component which checks the value of $cards['type']



via Chebli Mohamed

How to integrate razorpay payment gateway in laravel without using any package?

I want to integrate razorpay on my laravel project.I use it first time. I have no experience on this. I have my chechout page there is two radio button 1.online 2. Cod , After checking online when click on place order I want to redirect on razor pay payment gateway. How to do that? could someone help me!

Thanks in advance!



via Chebli Mohamed

jeudi 25 mars 2021

how to get value of radio button and pass it to controller in laravel?

On my e-commerce website, to checkout, you have to choose a shipping address based on some of the address data that has been entered into the database previously. here's how my website looks like. this is the modal. if you click the 'Pilih Alamat' button, a modal will appear containing a list of addresses that can be selected using a radio button. each radio button has a value in the form of an id from that address.

My problem is I want to take the value from the radio button that is selected and display the address details according to the address id. My plan is, when the 'pilih alamat' button is clicked on the modal, the value of the radio button will be sent to the controller so that I can retrieve data from the database that matches that id. but I am very new to this and I don't know what I should do. Your advice will be very meaningful, thank you.

this is the code for the modal section :

<div id="qck-view-shop2" class="zoom-anim-dialog qck-inside mfp-hide" aria-labelledby="myModalLabel">
                    <div class="modal-dialog modal-xl modal-dialog-scrollable" style="overflow-y: initial !important; margin-top:-10px;">
                      <div class="modal-content">
                          <div class="modal-header">
                               <h4 class="modal-title" id="myModalLabel">Pilih Alamat</h4>
                          </div>
                          <div class="modal-body" style="max-height: calc(100vh - 200px); overflow-y: auto;">
                            <div class="list-group">
                              @foreach ($alamat[1] as $row)
                              <label class="list-group-item" style="padding-left:30px; margin-top:20px;">
                                <input class="form-check-input" type="radio" name="alamat" value="">
                                <p></p>
                                <p style="font-weight:bold; margin-top:-10px;"></p>
                                <p style="margin-top:-10px;"></p>
                              </label>
                              @endforeach
                            </div>
                          </div>
                          <div class="modal-footer">
                            <a type="button" class="btn btn-outline-success" id="modal_button" style="color:white;">Pilih Alamat</a>
                          </div>
                      </div>
                    </div>
                  </div>

Here is the code for the section showing the details of the selected address:

<h6>Alamat Pengiriman</h6>
            @if ($alamat[1]!=null)
              <div class="card">
                <div class="card-body">
                  <p></p>
                  <p style="font-weight:bold; margin-top:-10px;"></p>
                  <p style="margin-top:-10px;"></p>
                  <p> <a class="popup-with-move-anim" href="#qck-view-shop3">Edit</a> </p>
                </div>
              </div>


via Chebli Mohamed

How to get data by query builder in laravel

I use join in query builder and here is the output

[
    {
        "id": 7,
        "name": "class 1",
        "idSubject": 17,
        "nameSubject": "Math"
    },
    {
        "id": 7,
        "name": "class 1",
        "idSubject": 16,
        "nameSubject": "history"
    },
    {
        "id": 8,
        "name": "class 2",
        "idSubject": 15,
        "nameSubject": "Computer"
    },
    {
        "id": 8,
        "name": "class 2",
        "idSubject": 19,
        "nameSubject": "geography"
    }
]

You can see id and name of class 1, 2 appearing twice. So, how to make it appear once.

this is my query:

    $data = DB::table('class')->join('class_subject','class.id','=','class_subject.class_id')
 ->join('subject','class_subject.subject_id','=','subject.id') 
->select('class.id','class.name','subject.id as idSubject','subject.name as nameSubject') ->get();


via Chebli Mohamed

How can i make local http request in flutter?

when i make access on website on endpoint "http://localhost/newsapp_api/public/api/authors"it's work without any problem,but when i try this in flutter it shows me a problem. message error:E/flutter (24506): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: SocketException: OS Error: Connection refused, errno = 111, address = localhost, port = 46873 codes:

authors_api.dart

import 'package:http/http.dart' as http;
import 'dart:convert';
import 'package:news_app/utilities/api_utilities.dart';

import 'package:news_app/models/author.dart';

class AuthorsAPI {

  Future<List<Author>> fetchAllAuthors() async {
    // ignore: deprecated_member_use
    List<Author> authors = List<Author>();
    String allAuthorsApi = base_api + all_authors_api;
    var url = Uri.parse(allAuthorsApi);

    var response = await http.get(url);
    print(response.statusCode);
    print("*****************");
    print(response.body);
  }
}

api_utilities.dart

String base_api = "http://localhost/newsapp_api/public/api/authors";
String all_authors_api = "/api/authors";


via Chebli Mohamed

mercredi 24 mars 2021

How to Upload pdf, xls, xlsx, doc, docx in Laravel and Vue.js

My Code is below but it's not working. I can upload Image with base64 formate and successfully store on Laravel backend but I'm struggling to upload other file formates in Laravel and vue.js. Anyone can help please?

.vue file

<template>
  <div>
    <form enctype="multipart/form-data" @submit.prevent="handleSubmit">
      <div class="form-group mb-4">
        <label>Institute Prospectus</label>
        <label class="custom-file-container__custom-file">
          <input
            type="file"
            class="form-control-file"
            @change="onChangeProspectus"
          />
        </label>
      </div>
    </form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      institute_prospectus: "",
    };
  },
  methods: {
    handleSubmit() {
      let data = {
        institute_prospectus: this.institute_prospectus,
      };
      axios.post(data, "/add-institute")
        .then(() => {
          console.log("Success");
        })
        .catch((err) => {
          console.log(err);
        });
    },
    onChangeProspectus(event) {
      let file = event.target.files[0];
      this.institute_prospectus = file.name;
    },
  },
};
</script>

InstituteController.php

public function add_institute(Request $request) {

    $prospectus_file = $request->institute_prospectus;
    if ($prospectus_file) {
        $ext = substr($prospectus_file, strrpos($prospectus_file, '.', -1), strlen($prospectus_file));
        $name = time().'-'.$slug.".".$ext;
        $upload_path = 'backend/files/institute/';
        $prospectus_url = $upload_path.$name;
        $prospectus_file->move($upload_path,$prospectus_url);
    }
}


via Chebli Mohamed

Serialization of 'class@anonymous' is not allowed in Laravel

I am trying to Merge a common column to form requests but is giving me this error

Serialization of 'class@anonymous' is not allowed

here is my code controller

$response = $this->dispatch(new CreateSupplier($request->all()));

code for CreateSupplier Class

class CreateSupplier extends Job

{

protected $vendor_name;

protected $request;

/**
 * Create a new job instance.
 *
 * @return void
 */
public function __construct($request)
{
    $this->request = $this->getRequestInstance($request);
}

/**
 * Execute the job.
 *
 * @return void
 */
public function handle()
{
    \DB::transaction(function () {
        $this->vendor_name = Vendor::create($this->request);
    });

    return $this->vendor_name;
}

}

here is my Abstract Job Class

abstract class Job implements ShouldQueue { use InteractsWithQueue, Jobs, Queueable, Relationships, SerializesModels;

public function getRequestInstance($request)
{
    if (!is_array($request)) {
        return $request;
    }

    $class = new class() extends FormRequest {
    };

    return $class->merge($request);
}

}

and finally my FormRequest Abstract Class

abstract class FormRequest extends BaseFormRequest
{
    /**
     * Prepare the data for validation.
     *
     * @return void
     */
    protected function prepareForValidation()
    {
        $this->merge([
            'company_id' => session('company_id'),
        ]);
    }

    /**
     * Determine if the given offset exists.
     *
     * @param  string  $offset
     * @return bool
     */
    public function offsetExists($offset)
    {
        return Arr::has(
            $this->route() ? $this->all() + $this->route()->parameters() : $this->all(),
            $offset
        );
    }
}


via Chebli Mohamed

How to make search system work in laravel which can run through an array stored as string in database?

I wish to make a search box which will run the search query. I have stored my data in database table in this form

asdf,english class science 5,chapter 1

I wish to use, to seperate between different tags.

I need to search across this. So if the user types chapter1 the search query should be able to pick up the chapter1 in the row. At present the search query is not able to pick anything. My code is as follows:

 $tag = $request->search;
    $query = Comics::where('comics_tag','LIKE','%'.$tag.'%')
    ->get();
    var_dump($query);die();

How to resolve it?



via Chebli Mohamed

select2 js empty value on load in select option

I have implemented select2js in my project, In few cases when i load my page, an empty value is appending to my select input box. Can anyone help me out, what is the issue, I have added a image of it and My code is

{!! Form::select('searchSkillTools[]',[],(isset($skillToolXref) && $skillToolXref!='')?$skillToolXref:'', array('autocomplete' => 'off', 'class' => 'chosen-select','multiple'=>'multiple', 'id' => 'searchSkillTools-'.$randomId, 'placeholder' => '' ,'style' => 'height: auto !important')) !!}

$('#searchSkillTools-').select2({  
    ajax: {
        url: skillToolUrl,
        dataType: 'json',
        method:'get',
        delay: 250,//delay in response
        data: function (data) {
            return {
                search: data.term //search term
            };
        },
        /*option to transform the data returned by response into the format expected by Select2*/
        processResults: function (response) {            
            return {
                results:response
            };
        },
        cache: true
    }
});

enter image description here



via Chebli Mohamed

mardi 23 mars 2021

Why Laravel Eloquent wasChanged and getChanges functions shows wrong updated fields

I'm trying to use wasChanged and getChanges functions to determine updated fields of updateOrCreate function.

Previously it was working great but after adding a boolean field to updateOrCreate, wasChanged returns true and getChanges returns the field as updated when it's not changed.

I tried to cast value to boolean but nothing resolved.

What might be the reason for this and how can I solve it?



via Chebli Mohamed

How to execute website without SSL build in laravel

I am developing website in laravel. In domain I don't have SSL install. I am getting "net::ERR_CERT_AUTHORITY_INVALID" Error. How to load website without SSL. Please help me to get out of it. Thanks in advance.

enter image description here



via Chebli Mohamed

How to avoid user take long time to wait while controller is processing

let's me explain example

  1. User click button
  2. run function trigger in Controller
  3. User wait 30sec because MyModel::doSomeThing take long time to process

MyModel::doSomeThing do many thing. I don't want user to wait for it.

Is it possible to run MyModel::doSomeThing by don't care about result and return to user immediately?

function trigger(Request $request){ 

   $id= $request->get('id');
   MyModel::doSomeThing($id);  // this one take 30 sec.    
   return response()->json([], 200);

}


via Chebli Mohamed

How can put the data into an array in laravel blade javascript?

In my laravel 5.3 project I have this in my controller for competitions table:

public function list(){
$data=Competition::all();
return view('map', ['data'=> $data]);
}

This is acceptable i my map.blade.php for five columns data as:

<ul>
@foreach ($data As $i)
    
@endforeach
</ul>

like this:

1 Fälttävlan Landskrona 55.87 12.83 2 Fälttävlan Sundsvall 62.39 17.31

In my script area for the map I want to make an array containing these for creating markers on the map. How do I do that? The $data contains everything in the DB table as not only data but column names and so on.



via Chebli Mohamed

lundi 22 mars 2021

i want to convert PostgreSQL Query into Laravel builder

select created_at::date, count(id) from transactions WHERE created_at::date <= '2021-03-18' and created_at::date >= '2021-03-11' and merchant_id = 3 GROUP BY created_at::date



via Chebli Mohamed

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'name' in 'field list'

I'm using Laravel 5.1 framework here.

So I'm trying to create a basic task list, but I keep getting an error because of the unknown column. It said:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'name' in 'field list' (SQL: insert into tasks (name, updated_at, created_at) values (Laba, 2021-03-22 16:42:10, 2021-03-22 16:42:10))

Route

Route::post('/task', function (Request $request) {
    $validator = Validator::make($request->all(), [
        'name' => 'required|max:255',
    ]);

    if ($validator->fails()) {
        return redirect('/')
            ->withInput()
            ->withErrors($validator);
    }

    $task = new Task;
    $task->name = $request->name;
    $task->save();

    return redirect('/');
});

Migration

class CreateTasksTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('tasks', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('tasks');
    }
}

Model

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Task extends Model
{
    use HasFactory;
}

I can't find what column 'name' is unknown. What I did wrong?



via Chebli Mohamed

showing new pdf with same name vue.js and laravel

I'm showing pdf in modal popup like this :

<div class="modal-body">
        <embed :src="'../../../../storage/users/user_'+userId+'.pdf?t=' + new Date().getTime()" width="700px" max-height="800px" type="application/pdf">
</div>

This file is created every time i load modal on button click, but when i load modal old file is shown, but i want to display new file that was generated with the same name.



via Chebli Mohamed

laravel 8 getting 404 file not found error on hosting project on Godaddy

The project directory like domain-name/demos/project-folder

domain-name/demos/project-folder/.htaccess is

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

domain-name/demos/project-folder/public/.htaccess and index is

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

And the index.php is

define('LARAVEL_START', microtime(true));  

require __DIR__.'/../vendor/autoload.php';
    
$app = require_once __DIR__.'/../bootstrap/app.php';

$kernel = $app->make(Kernel::class);

$response = tap($kernel->handle(
    $request = Request::capture()
))->send();

$kernel->terminate($request, $response);


via Chebli Mohamed

How to store same data 3 times using laravel but only send 1 request?

I want to create advance maintenance billing with unique maintenance key id.



via Chebli Mohamed

Call to undefined method Illuminate\Support\Facades\Request::all()

I am using session in Laravel 5.1 and here is my Controller code :

Route::post('/task', function (Request $request) {
    $validator = Validator::make($request->all(), [
        'name' => 'required|max:255',
    ]);

    if ($validator->fails()) {
        return redirect('/')
            ->withInput()
            ->withErrors($validator);
    }

   
});

I need to use session, and getting this error : Call to undefined method Illuminate\Support\Facades\Request::all()



via Chebli Mohamed

dimanche 21 mars 2021

Laravel grapql endpoint

Is it possible to call laravel lighthouse graphql query, like api? See images, instead of graphql showing in the network

laravel api (network view) laravel graphql endpoint (network view)



via Chebli Mohamed

relevent laravel query for postgres working query

I have the working working in postgres

select * from "prospects_audit_dump" where date_created::date between '2021-03-01' and '2021-03-15' and ( ("parent_id" in ('4747f33c-764c-11eb-b43f-0265ed7510c2', '771782c0-8197-11eb-8d62-020683bef092', '8c400d42-2470-11e9-917b-066c2def7d44') and "after_value_string" = 'MGL' and "before_value_string" != 'Open_inbound') or ("before_value_string" = 'Open_inbound' and "after_value_string" = 'MGL') or ("before_value_string" = 'MGL' and "after_value_string" = 'MQL'));

I have tried to convert this as laravel query

$audit_table_result=DB::table($type.'_audit_dump')->whereBetween(DB::raw('date_created::date'),['2021-03-01','2021-03-15');
  $audit_table_result=$audit_table_result->where(function ($query) use ($meeting_ids) {
    return $query->whereIn('parent_id', $meeting_ids)->where('after_value_string', 'MGL')->where('before_value_string', '!=', 'Open_inbound');
    }) ->orWhere(function ($query) {
    return $query->where('before_value_strings', 'Open_inbound')->where('after_value_string', 'MGL');
    })
    ->orWhere(function ($query) {
    return $query->where('before_value_string', 'MGL')->where('after_value_string', 'MQL');
    });
   $audit_table_result=$audit_table_result->get();

but missing the outter bracket after between '2021-03-01' and '2021-03-15' and select * from "prospects_audit_dump" where date_created::date between '2021-03-01' and '2021-03-15' and ( ); how to alter my laravel query.



via Chebli Mohamed

Count of left Join with subquery on latest raw filtered with whereRaw - Laravel

I have my customers purchase history query, with chats between customer and admin in each purchases, these chats are grouped by comment_topics which are listed in comment_topics table.

For now everything works fine as below, except that i want to get number of total chats corresponding to a comment_topic inside a purchase, but for now i have used latest raw from chats table to get details like last_author of chat. How do i get total number of chats before executing latest raw from the subquery.

    $purchases = new Purchases;
    $purchases = $purchases->newQuery();        
    $purchases = $purchases->join('customers', 'purchases.customerid', '=', 'customers.id');
    
    $purchases = $purchases->leftjoin('comment_topics', 'purchases.purchaseid', '=', 'comment_topics.chats_ref');

    $purchases = $purchases->leftjoin('chats', function($query) {
        $query->on('comment_topics.id','=','chats.chat_topic_id')
        ->whereRaw('chats.id IN (select MAX(chats.id) from chats join comment_topics on comment_topics.id = chats.chat_topic_id group by comment_topics.id)');
    });
    $purchases = $purchases->leftJoin('branches', 'branches.id','=','purchases.branch_id');   

    $purchases = $purchases->selectRaw('purchases.purchaseid,purchases.customerid,purchases.order_total, purchases.order_name as customer_name, store_name, purchases.branch_id, comment_topics.id as chat_topic_id, chats.chat_author as last_author');

    $purchases = $purchases->orderBy('purchases.created_at', 'desc')->paginate(10);
    return response()->json($purchases);

The above is my working code. I have been trying many ways to get the count of chats and none succeeded.

This is the subquery part:

$purchases = $purchases->leftjoin('chats', function($query) {
    $query->on('comment_topics.id','=','chats.chat_topic_id')
    ->whereRaw('chats.id IN (select MAX(chats.id) from chats join comment_topics on comment_topics.id = chats.chat_topic_id group by comment_topics.id)');
});

Please guide. Thanks in advance.



via Chebli Mohamed

how to show Laravel welcome page when logged and non logged

I have Laravel Login system using Auth. need show to the user diffrent content at @sections as following when users are logged and non logged. welcome.blade.php

@extends('layouts.app')
@section('title' )
@guest
@section('content1')
<p>this is non logging content</p>
@include('partials._footer')
@endsection

@else

@section('content2')
<p>This is logging user content</p>
@endsection
@endguest

but in my logged user content is displaying in the non logged are also, how to fix this problem?



via Chebli Mohamed

Registration page shows the data field for one second then the data field is hiding

data field in Registration page shows for one second then the data field is hiding

when i presss on register link in main laravel page(http://localhost/newsapp_api/public) , data field in Registration page appeares for one second then the data field is hiding. when i make inspect element for register page,i will show in my console this message: [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build.

(found in )

register.blade.php

@extends('layouts.app')
@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header"></div>

                <div class="card-body">
                    <form method="POST" action="">
                        @csrf

                        <div class="form-group row">
                            <label for="name" class="col-md-4 col-form-label text-md-right"></label>

                            <div class="col-md-6">
                                <input id="name" type="text" class="form-control @error('name') is-invalid @enderror" name="name" value="" required autocomplete="name" autofocus>

                                @error('name')
                                    <span class="invalid-feedback" role="alert">
                                        <strong></strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="email" class="col-md-4 col-form-label text-md-right"></label>

                            <div class="col-md-6">
                                <input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="" required autocomplete="email">

                                @error('email')
                                    <span class="invalid-feedback" role="alert">
                                        <strong></strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="password" class="col-md-4 col-form-label text-md-right"></label>

                            <div class="col-md-6">
                                <input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="new-password">

                                @error('password')
                                    <span class="invalid-feedback" role="alert">
                                        <strong></strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="password-confirm" class="col-md-4 col-form-label text-md-right"></label>

                            <div class="col-md-6">
                                <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password">
                            </div>
                        </div>

                        <div class="form-group row mb-0">
                            <div class="col-md-6 offset-md-4">
                                <button type="submit" class="btn btn-primary">
                                    
                                </button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

welcome.blade.php

    <!DOCTYPE html>
    <html lang="">
        <head>
            <meta charset="utf-8">
            <meta name="viewport" content="width=device-width, initial-scale=1">
    
            <title>Laravel</title>
    
            <!-- Fonts -->
            <link href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap" rel="stylesheet">
    
            <!-- Styles -->
            <style>
                /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-t{border-top-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}}
            </style>
    
            <style>
                body {
                    font-family: 'Nunito';
                }
            </style>
        </head>
        <body class="antialiased">
            <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0">
                @if (Route::has('login'))
                    <div class="hidden fixed top-0 right-0 px-6 py-4 sm:block">
                        @auth
                            <a href="" class="text-sm text-gray-700 underline">Home</a>
                        @else
                            <a href="" class="text-sm text-gray-700 underline">Log in</a>
    
                            @if (Route::has('register'))
                                <a href="" class="ml-4 text-sm text-gray-700 underline">Register</a>
                            @endif
                        @endauth
                    </div>
                @endif
    
                <div class="max-w-6xl mx-auto sm:px-6 lg:px-8">
                    <div class="flex justify-center pt-8 sm:justify-start sm:pt-0">
                        <svg viewBox="0 0 651 192" fill="none" xmlns="http://www.w3.org/2000/svg" class="h-16 w-auto text-gray-700 sm:h-20">
                            <g clip-path="url(#clip0)" fill="#EF3B2D">
                                <path d="M248.032 44.676h-16.466v100.23h47.394v-14.748h-30.928V44.676zM337.091 87.202c-2.101-3.341-5.083-5.965-8.949-7.875-3.865-1.909-7.756-2.864-11.669-2.864-5.062 0-9.69.931-13.89 2.792-4.201 1.861-7.804 4.417-10.811 7.661-3.007 3.246-5.347 6.993-7.016 11.239-1.672 4.249-2.506 8.713-2.506 13.389 0 4.774.834 9.26 2.506 13.459 1.669 4.202 4.009 7.925 7.016 11.169 3.007 3.246 6.609 5.799 10.811 7.66 4.199 1.861 8.828 2.792 13.89 2.792 3.913 0 7.804-.955 11.669-2.863 3.866-1.908 6.849-4.533 8.949-7.875v9.021h15.607V78.182h-15.607v9.02zm-1.431 32.503c-.955 2.578-2.291 4.821-4.009 6.73-1.719 1.91-3.795 3.437-6.229 4.582-2.435 1.146-5.133 1.718-8.091 1.718-2.96 0-5.633-.572-8.019-1.718-2.387-1.146-4.438-2.672-6.156-4.582-1.719-1.909-3.032-4.152-3.938-6.73-.909-2.577-1.36-5.298-1.36-8.161 0-2.864.451-5.585 1.36-8.162.905-2.577 2.219-4.819 3.938-6.729 1.718-1.908 3.77-3.437 6.156-4.582 2.386-1.146 5.059-1.718 8.019-1.718 2.958 0 5.656.572 8.091 1.718 2.434 1.146 4.51 2.674 6.229 4.582 1.718 1.91 3.054 4.152 4.009 6.729.953 2.577 1.432 5.298 1.432 8.162-.001 2.863-.479 5.584-1.432 8.161zM463.954 87.202c-2.101-3.341-5.083-5.965-8.949-7.875-3.865-1.909-7.756-2.864-11.669-2.864-5.062 0-9.69.931-13.89 2.792-4.201 1.861-7.804 4.417-10.811 7.661-3.007 3.246-5.347 6.993-7.016 11.239-1.672 4.249-2.506 8.713-2.506 13.389 0 4.774.834 9.26 2.506 13.459 1.669 4.202 4.009 7.925 7.016 11.169 3.007 3.246 6.609 5.799 10.811 7.66 4.199 1.861 8.828 2.792 13.89 2.792 3.913 0 7.804-.955 11.669-2.863 3.866-1.908 6.849-4.533 8.949-7.875v9.021h15.607V78.182h-15.607v9.02zm-1.432 32.503c-.955 2.578-2.291 4.821-4.009 6.73-1.719 1.91-3.795 3.437-6.229 4.582-2.435 1.146-5.133 1.718-8.091 1.718-2.96 0-5.633-.572-8.019-1.718-2.387-1.146-4.438-2.672-6.156-4.582-1.719-1.909-3.032-4.152-3.938-6.73-.909-2.577-1.36-5.298-1.36-8.161 0-2.864.451-5.585 1.36-8.162.905-2.577 2.219-4.819 3.938-6.729 1.718-1.908 3.77-3.437 6.156-4.582 2.386-1.146 5.059-1.718 8.019-1.718 2.958 0 5.656.572 8.091 1.718 2.434 1.146 4.51 2.674 6.229 4.582 1.718 1.91 3.054 4.152 4.009 6.729.953 2.577 1.432 5.298 1.432 8.162 0 2.863-.479 5.584-1.432 8.161zM650.772 44.676h-15.606v100.23h15.606V44.676zM365.013 144.906h15.607V93.538h26.776V78.182h-42.383v66.724zM542.133 78.182l-19.616 51.096-19.616-51.096h-15.808l25.617 66.724h19.614l25.617-66.724h-15.808zM591.98 76.466c-19.112 0-34.239 15.706-34.239 35.079 0 21.416 14.641 35.079 36.239 35.079 12.088 0 19.806-4.622 29.234-14.688l-10.544-8.158c-.006.008-7.958 10.449-19.832 10.449-13.802 0-19.612-11.127-19.612-16.884h51.777c2.72-22.043-11.772-40.877-33.023-40.877zm-18.713 29.28c.12-1.284 1.917-16.884 18.589-16.884 16.671 0 18.697 15.598 18.813 16.884h-37.402zM184.068 43.892c-.024-.088-.073-.165-.104-.25-.058-.157-.108-.316-.191-.46-.056-.097-.137-.176-.203-.265-.087-.117-.161-.242-.265-.345-.085-.086-.194-.148-.29-.223-.109-.085-.206-.182-.327-.252l-.002-.001-.002-.002-35.648-20.524a2.971 2.971 0 00-2.964 0l-35.647 20.522-.002.002-.002.001c-.121.07-.219.167-.327.252-.096.075-.205.138-.29.223-.103.103-.178.228-.265.345-.066.089-.147.169-.203.265-.083.144-.133.304-.191.46-.031.085-.08.162-.104.25-.067.249-.103.51-.103.776v38.979l-29.706 17.103V24.493a3 3 0 00-.103-.776c-.024-.088-.073-.165-.104-.25-.058-.157-.108-.316-.191-.46-.056-.097-.137-.176-.203-.265-.087-.117-.161-.242-.265-.345-.085-.086-.194-.148-.29-.223-.109-.085-.206-.182-.327-.252l-.002-.001-.002-.002L40.098 1.396a2.971 2.971 0 00-2.964 0L1.487 21.919l-.002.002-.002.001c-.121.07-.219.167-.327.252-.096.075-.205.138-.29.223-.103.103-.178.228-.265.345-.066.089-.147.169-.203.265-.083.144-.133.304-.191.46-.031.085-.08.162-.104.25-.067.249-.103.51-.103.776v122.09c0 1.063.568 2.044 1.489 2.575l71.293 41.045c.156.089.324.143.49.202.078.028.15.074.23.095a2.98 2.98 0 001.524 0c.069-.018.132-.059.2-.083.176-.061.354-.119.519-.214l71.293-41.045a2.971 2.971 0 001.489-2.575v-38.979l34.158-19.666a2.971 2.971 0 001.489-2.575V44.666a3.075 3.075 0 00-.106-.774zM74.255 143.167l-29.648-16.779 31.136-17.926.001-.001 34.164-19.669 29.674 17.084-21.772 12.428-43.555 24.863zm68.329-76.259v33.841l-12.475-7.182-17.231-9.92V49.806l12.475 7.182 17.231 9.92zm2.97-39.335l29.693 17.095-29.693 17.095-29.693-17.095 29.693-17.095zM54.06 114.089l-12.475 7.182V46.733l17.231-9.92 12.475-7.182v74.537l-17.231 9.921zM38.614 7.398l29.693 17.095-29.693 17.095L8.921 24.493 38.614 7.398zM5.938 29.632l12.475 7.182 17.231 9.92v79.676l.001.005-.001.006c0 .114.032.221.045.333.017.146.021.294.059.434l.002.007c.032.117.094.222.14.334.051.124.088.255.156.371a.036.036 0 00.004.009c.061.105.149.191.222.288.081.105.149.22.244.314l.008.01c.084.083.19.142.284.215.106.083.202.178.32.247l.013.005.011.008 34.139 19.321v34.175L5.939 144.867V29.632h-.001zm136.646 115.235l-65.352 37.625V148.31l48.399-27.628 16.953-9.677v33.862zm35.646-61.22l-29.706 17.102V66.908l17.231-9.92 12.475-7.182v33.841z"/>
                            </g>
                        </svg>
                    </div>
    
                    <div class="mt-8 bg-white dark:bg-gray-800 overflow-hidden shadow sm:rounded-lg">
                        <div class="grid grid-cols-1 md:grid-cols-2">
                            <div class="p-6">
                                <div class="flex items-center">
                                    <svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" class="w-8 h-8 text-gray-500"><path d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"></path></svg>
                                    <div class="ml-4 text-lg leading-7 font-semibold"><a href="https://laravel.com/docs" class="underline text-gray-900 dark:text-white">Documentation</a></div>
                                </div>
    
                                <div class="ml-12">
                                    <div class="mt-2 text-gray-600 dark:text-gray-400 text-sm">
                                        Laravel has wonderful, thorough documentation covering every aspect of the framework. Whether you are new to the framework or have previous experience with Laravel, we recommend reading all of the documentation from beginning to end.
                                    </div>
                                </div>
                            </div>
    
                            <div class="p-6 border-t border-gray-200 dark:border-gray-700 md:border-t-0 md:border-l">
                                <div class="flex items-center">
                                    <svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" class="w-8 h-8 text-gray-500"><path d="M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z"></path><path d="M15 13a3 3 0 11-6 0 3 3 0 016 0z"></path></svg>
                                    <div class="ml-4 text-lg leading-7 font-semibold"><a href="https://laracasts.com" class="underline text-gray-900 dark:text-white">Laracasts</a></div>
                                </div>
    
                                <div class="ml-12">
                                    <div class="mt-2 text-gray-600 dark:text-gray-400 text-sm">
                                        Laracasts offers thousands of video tutorials on Laravel, PHP, and JavaScript development. Check them out, see for yourself, and massively level up your development skills in the process.
                                    </div>
                                </div>
                            </div>
    
                            <div class="p-6 border-t border-gray-200 dark:border-gray-700">
                                <div class="flex items-center">
                                    <svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" class="w-8 h-8 text-gray-500"><path d="M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"></path></svg>
                                    <div class="ml-4 text-lg leading-7 font-semibold"><a href="https://laravel-news.com/" class="underline text-gray-900 dark:text-white">Laravel News</a></div>
                                </div>
    
                                <div class="ml-12">
                                    <div class="mt-2 text-gray-600 dark:text-gray-400 text-sm">
                                        Laravel News is a community driven portal and newsletter aggregating all of the latest and most important news in the Laravel ecosystem, including new package releases and tutorials.
                                    </div>
                                </div>
                            </div>
    
                            <div class="p-6 border-t border-gray-200 dark:border-gray-700 md:border-l">
                                <div class="flex items-center">
                                    <svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" class="w-8 h-8 text-gray-500"><path d="M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
                                    <div class="ml-4 text-lg leading-7 font-semibold text-gray-900 dark:text-white">Vibrant Ecosystem</div>
                                </div>
    
                                <div class="ml-12">
                                    <div class="mt-2 text-gray-600 dark:text-gray-400 text-sm">
                                        Laravel's robust library of first-party tools and libraries, such as <a href="https://forge.laravel.com" class="underline">Forge</a>, <a href="https://vapor.laravel.com" class="underline">Vapor</a>, <a href="https://nova.laravel.com" class="underline">Nova</a>, and <a href="https://envoyer.io" class="underline">Envoyer</a> help you take your projects to the next level. Pair them with powerful open source libraries like <a href="https://laravel.com/docs/billing" class="underline">Cashier</a>, <a href="https://laravel.com/docs/dusk" class="underline">Dusk</a>, <a href="https://laravel.com/docs/broadcasting" class="underline">Echo</a>, <a href="https://laravel.com/docs/horizon" class="underline">Horizon</a>, <a href="https://laravel.com/docs/sanctum" class="underline">Sanctum</a>, <a href="https://laravel.com/docs/telescope" class="underline">Telescope</a>, and more.
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
    
                    <div class="flex justify-center mt-4 sm:items-center sm:justify-between">
                        <div class="text-center text-sm text-gray-500 sm:text-left">
                            <div class="flex items-center">
                                <svg fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor" class="-mt-px w-5 h-5 text-gray-400">
                                    <path d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path>
                                </svg>
    
                                <a href="https://laravel.bigcartel.com" class="ml-1 underline">
                                    Shop
                                </a>
    
                                <svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" class="ml-4 -mt-px w-5 h-5 text-gray-400">
                                    <path d="M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z"></path>
                                </svg>
    
                                <a href="https://github.com/sponsors/taylorotwell" class="ml-1 underline">
                                    Sponsor
                                </a>
                            </div>
                        </div>
    
                        <div class="ml-4 text-center text-sm text-gray-500 sm:text-right sm:ml-0">
                            Laravel v (PHP v)
                        </div>
                    </div>
                </div>
            </div>
        </body>
    </html>@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header"></div>

                <div class="card-body">
                    @if (session('status'))
                        <div class="alert alert-success" role="alert">
                            
                        </div>
                    @endif

                    
                </div>
            </div>
        </div>
    </div>
</div>
@endsection


via Chebli Mohamed

Vue with Ajax and v-select

Creating a select with search filter, I am getting quite a large list of data and I am trying to implement the VueSelect search engine obviously from Vue.

Ok, I'm doing a GET query to the server in PHP (LARAVEL) and from the server I send the response like this:

$clientes = DB::connection('naviones')->table('ps_customer')->select('ps_customer.id_customer',DB::raw('CONCAT(ps_customer.firstname," ",ps_customer.lastname)as fullname'))
    ->having('fullname', 'like' ,$nombrecliente.'%')
    ->orderBy('fullname','ASC')
    ->get();

return response()->json
([
    'clients' => $clientes
]);

In view I have the component select:

<div class="form-group" id="vueSelect">
    {!! Form::label('nombre_cliente','Nombre del cliente') !!}
        <v-select label="name" :filterable="false" :options="options" @search="onSearch">
            <template slot="no-options">
                Buscar...
            </template>
            <template slot="option" slot-scope="option">
                <div class="d-center">
                    @
                </div>
            </template>
            <template slot="selected-option" slot-scope="option">
                <div class="selected d-center">
                    <img :src='option.owner.avatar_url'/>
                    @
                </div>
            </template>
        </v-select>
</div>

And in Vue I have this:

new Vue({
    el: "#vueSelect",
    data: {
        options: []
    },
    methods: {
        onSearch(search, loading) {
            if(search.length) {
                loading(true);
                this.search(loading, search, this);
            }
        },
        search: _.debounce((loading, search, vm) => {
            fetch(
                `../buscarclientes/${escape(search)}`
            ).then(res => {
                res.json().then(json => (vm.options = json.items));
                console.log(vm);
                loading(false);

            });
        }, 350)
    }
});

What is my mistake? I know that I am not accessing the "clients" object in my array, but I don't know how it is done in Vue.



via Chebli Mohamed

samedi 20 mars 2021

Uploading Ability lost Due to Changing the URL Matrix Laravel

So I set up a cdn and now the cdn is working perfectly. During the process I had to setup a subdomian in the following directory where the matrix admin is located and now I lost the upload ability.

Previously URL used to access the Matrix Admin:

example.com/music

After setting up the CDN and Subdomain The url is changed to

music.example.com

The matrix admin is located in the in located in the subdirectory music.

So can anyone help me resolving the issue as I have lost the ability to upload any music or video thorough Matrix admin.



via Chebli Mohamed

Laravel How do I insert a column in many to many relationship

could anyone help me. I'm making a follow system. My code is working but I want the integer value going into the follower column in users. Is a pivot appropriate to use or is there something else I could use? Here's my code:

user model  
public function followers()
{
    return $this->belongsToMany(User::class, 'followers', 'leader_id', 'follower_id');
}
public function followings()
{
    return $this->belongsToMany(User::class, 'followers', 'follower_id', 'leader_id');
}
follower model protected $fillable=[

     "follower_id",
     "leader_id",
     
     
    ];
Controller    public function followCount( int $id)
    {
        $user = User::find($id); 
         
    $user->followers()->attach(auth()->user()->id);
   

    return redirect()->back()->with('success', 'Successfully followed the user.');
     
    }
     ```



via Chebli Mohamed

Error Message: "The GET method is not supported for this route. Supported methods: POST"

when i access to endpoint this http://localhost/newsapp_api/public/api/register,this message is showed "The GET method is not supported for this route. Supported methods: POST". look to the link below

but when i tried register new user and entered data(name,email,password) for user by postman program this message is showed "message": "Undefined property: Illuminate\Database\Query\Builder::$map". and it doesn't give json data. look to the link below

api.php

Route::POST('register', 'App\Http\Controllers\Api\UserController@store');

UserController.php

public function store(Request $request)
    {
        $request->validate([
            'name'  => 'required',
            'email' => 'required',
            'password'  => 'required'
        ]);
        $user = new User();
        // $user->name = $request->get( 'name' );
        // $user->email = $request->get( 'email' );
        // $user->password = Hash::make( $request->get( 'password' ) );
        $user->name = $request->name;
        $user->email = $request->email;
        $user->password = Hash::make( $request->password );
        $user->save();
        return new UserResource( $user );
    }

UserResource.php

<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\ResourceCollection;
use Illuminate\Http\Resources\Json\Resource;

class UserResource extends ResourceCollection
{
    /**
     * Transform the resource collection into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return parent::toArray($request);
    }
}


via Chebli Mohamed

vendredi 19 mars 2021

How to get JSON value from PHP?

I'm trying to get JSON value from PHP but if one of the property values contains a forward slash "/" it fails (I'm using GET to send data for this particular scenario).

Here's how I'm sending the data (This works just fine when I don't send "/").

UI side

const dataObj = {
      description: 'my / description',
      buyer: 'Mike Brown'
    };

const dataString = JSON.stringify(dataObj);

fetch(`http://localhost:8000/clients/${dataString}`)
    .then((response) => response.text())
      .then((responseData) => {
         ......
      });

PHP side:

Route::get('/clients/{data}', function($data) {
   // This line below fails ONLY if value of description property contains "/"
   // otherwise it works just fine
   $dataToBeSaved = json_decode($data, true); 

});

Yes, I did some research on json_decode, but nothing very clear. Can anyone point me on the right direction? Thanks a lot in advance!



via Chebli Mohamed

how to pass url from controller action in laravel?

Consider my current URL is

https://web.com/user/order/createOrder/200/221

I want in controller function action URL should be with different perameters

https://web.com/user/order/createOrder/100/200

how I can do this in return action of controller function my current action is

return redirect()->route('create.order')->with('success' , 'Status Changed');
   

here is my route

 Route::get('/createOrder/{id?}/{lc?}','OrderController@createOrder')->name('create.order'); 
   


via Chebli Mohamed

jeudi 18 mars 2021

how to concatenate multiple strings with commas if there is the same array data

I have the array data as drawn image description here

and I want to display data like this

0 = "16-11-1996 / IGD"
01 = "CBC", "DIFF"
04 = "GLUS "," UR "," CRE " 

I tried to use this PHP splitting arrays into groups based on equal values method but it was not what I expected.

i am just learning coding and i am not what way or what keywords should i use to find a solution. i hope someone can help me,



via Chebli Mohamed

Laravel Fetch Value form Session

Here is my Session and i would like to fetch the value from Sample_table to get the original array value how can i do that ?

 Sample_table{#266 ▼
  #fillable: array:6 [▶]
  #table: "Sample_table"
  #primaryKey: "id"
  +timestamps: true
  #connection: "mysql"
  #keyType: "int"
  +incrementing: true
  #with: []
  #withCount: []
  #perPage: 15
  +exists: true
  +wasRecentlyCreated: false
  #attributes: array:20 [▶]
  #original: array:20 [▼
    "id" => "9"
    "firstName" => "test"
    "lastName" => "asdf"
    "middleName" => "test"
    "contactNo" => "2147483647"
    "emailAddress" => "test@gmail.com"
    "residenceAddress" => "afsf"
    "province_id" => "6"
    "city_id" => "3"
    "barangay_id" => "16982"
    "copyMailing" => null
    "mailingAddress" => null
    "mailing_province_id" => "6"
    "mailing_city_id" => "3"
    "mailing_barangay_id" => "16982"
    "status" => "0"
    "userIdentity" => "0"
    "global_id" => "0"
    "updated_at" => "0000-00-00 00:00:00"
    "created_at" => "0000-00-00 00:00:00"
  ]


via Chebli Mohamed

Unable to whitelist files due to the use of base_path() in Laravel5

I am trying to generate a code coverage report using PHPUnit. When I whitelist all the app directories for code coverage reports, the following error will be produced.

Fatal error: Uncaught Error: Call to undefined method Illuminate\Container\Container::basePath()

The base_path() function has been used in helpers and the number of controllers and each of them is producing the above error. I was able to produce a code coverage report of a file which do not use the base_path() method.

I am using PHP 7.4, Laravel 5.7, PHPUnit 7.5.30, Xdebug 3.0.3



via Chebli Mohamed

Laravel 5 can't return view static page

I'm to update a Laravel 5 template blade . I find ,ofcourse, all files in the view folder but there is a static page that it isn't there! I searched all aroud the solution but without success... This page is linked like: Ipsum To walk aroud this issue I've also tried to build a new "page.blade.php" and call it with a new link, but I get only 500 o 404 error (calling directly by route or also in by controller...). What I didn't understand?



via Chebli Mohamed

mercredi 17 mars 2021

LARAVEL - How to see if an application for user already exists

For a job board application, trying to see if an application is already present for the job post for the user so the apply button isn't displayed any longer. This is my code currently. I'm guessing I may have to pass in the $job->id somewhere? Any idea how to check this? Thanks!

@if ((auth()->user()->applications()->job()->count() >= 1)) YOU HAVE ALREADY APPLIED @else APPLY NOW @endif



via Chebli Mohamed

After running command npm-i command in laravel i started getting terminal-errors

Traceback (most recent call last): File "D:\O\domains\laravel\chat\node_modules\gulp-sass\node_modules\node-gyp\gyp\gyp_main.py", line 16, in sys.exit(gyp.script_main()) File "D:\O\domains\laravel\chat\node_modules\gulp-sass\node_modules\node-gyp\gyp\pylib\gyp_init_.py", line 545, in script_main return main(sys.argv[1:]) File "D:\O\domains\laravel\chat\node_modules\gulp-sass\node_modules\node-gyp\gyp\pylib\gyp_init_.py", line 538, in main return gyp_main(args) File "D:\O\domains\laravel\chat\node_modules\gulp-sass\node_modules\node-gyp\gyp\pylib\gyp_init_.py", line 514, in gyp_main options.duplicate_basename_check) File "D:\O\domains\laravel\chat\node_modules\gulp-sass\node_modules\node-gyp\gyp\pylib\gyp_init_.py", line 98, in Load generator.CalculateVariables(default_variables, params) File "D:\O\domains\laravel\chat\node_modules\gulp-sass\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 1916, in CalculateVariables generator_flags.get('msvs_version', 'auto')) File "D:\O\domains\laravel\chat\node_modules\gulp-sass\node_modules\node-gyp\gyp\pylib\gyp\MSVSVersion.py", line 434, in SelectVisualStudioVersion versions = _DetectVisualStudioVersions(version_map[version], 'e' in version) KeyError: '2019' gyp ERR! configure error gyp ERR! stack Error: gyp failed with exit code: 1 gyp ERR! stack at ChildProcess.onCpExit (D:\O\domains\laravel\chat\node_modules\gulp-sass\node_modules\node-gyp\lib\configure.js:345:16) gyp ERR! stack at ChildProcess.emit (events.js:315:20) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:277:12) gyp ERR! System Windows_NT 10.0.14393 gyp ERR! command "C:\Program Files\nodejs\node.exe" "D:\O\domains\laravel\chat\node_modules\gulp-sass\node_modules\node-gyp\bin\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library=" gyp ERR! cwd D:\O\domains\laravel\chat\node_modules\gulp-sass\node_modules\node-sass gyp ERR! node -v v14.16.0 gyp ERR! node-gyp -v v3.8.0 gyp ERR! not ok Build failed with error code: 1 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.1 (node_modules\chokidar\node_modules\fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\gulp-watch\node_modules\chokidar\node_modules\fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules\watchify\node_modules\chokidar\node_modules\fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! node-sass@3.13.1 postinstall: node scripts/build.js npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the node-sass@3.13.1 postinstall script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\User\AppData\Roaming\npm-cache_logs\2021-03-17T14_39_58_121Z-debug.log



via Chebli Mohamed

Frontend user also Logged in When Admin Login in Laravel(both details are on users table) and also logout

Here I using Role Model and Roletype Model but how to stop frontend login when admin gets login? please help me!

User Model:-

protected $fillable = [
    'f_name', 'l_name','email','phone_no', 'password','user_password','api_token','status','provider_name','provider_id'
];

Role Model:-

protected $table = 'roles';
protected $fillable = ['name','display_name','description'];
protected $visible = ['id','name','display_name','description'];
public $timestamps = true;

RoleUser Model:-

protected $table = 'role_user';
protected $fillable = ['user_id','role_id'];
protected $visible = ['user_id','role_id'];
public $timestamps = true;

Wher User Login:-

public function user_login_check(Request $request){
    $msg = [
        'email.required' => 'Enter Your Email',
        'password.required' => 'Enter Your Password',
    ];
    $this->validate($request, [
        'email' => 'bail|required',
        'password' => 'bail|required'

    ], $msg);
    $email = $request->get('email');
    $pass = $request->get('password');
    $uid = User::where('email', $email)->orwhere('phone_no',$email)->value('id');
    $status = User::where('email', $email)->orwhere('phone_no',$email)->value('status');
    $role_id = RoleUser::where('user_id', $uid)->value('role_id');
    $role = Role::where('id', $role_id)->value('name');
    $remember = false;
    if($request->get('remember') !=null){
        $remember = true;
    }
    if ($role == 'user') {
        if($status=='Active'){
            if (Auth::attempt(array('email' => $email, 'password' => $pass,'status'=>'Active'), $remember) || Auth::attempt(array('phone_no' => $email, 'password' => $pass,'status'=>'Active'), $remember)) {
                if($request->session()->has('checkout')){
                    $request->session()->forget('checkout');
                    return redirect(url('/proceed-to-checkout'));
                }else{
                    return redirect(url('/'));
                }
            } else {
                return redirect()->back()->with('login_error', 'Login Failed !!! Please check Your Email/Phone and Password.');
            }
        }else{
            return redirect()->back()->with('login_error', 'Login Failed !!! Please verify your email for login or reset password.');
        }
    }else{
        return redirect()->back()->with('login_error', 'Login Failed !!! Please register first.');
    }
}

Where Admin Login:-

public function Check_login(Request $request)
{
    //  dd($request->all());

    $msg = [
        'email.required' => 'Enter Your Email',
        'password.required' => 'Enter Your Password',
    ];
    $this->validate($request, [
        'email' => 'bail|required|email',
        'password' => 'bail|required|alphaNum|min:3'

    ], $msg);

    $email = $request->get('email');
    $pass = $request->get('password');
    $uid = User::where('email', $email)->value('id');
    if ($uid == '') {
        return redirect()->back()->with('error', 'Login Failed !!! Please check Your Email and Password.');
    } else {
        $role_id = RoleUser::where('user_id', $uid)->value('role_id');
        $role = Role::where('id', $role_id)->value('name');

        if ($role == 'admin') {
            if (Auth::attempt(array('email' => $email, 'password' => $pass, 'status' => 'Active'), true)) {
                $check_email = Auth::user()->email;
                $request->session()->put('email', $check_email);
                $user_type = Auth::user()->user_type;
                $request->session()->put('user_type', $user_type);
                return redirect(route('admin::dashboard'));
            } else {
                return redirect()->back()->with('error', 'Login Failed !!! Please check Your Email and Password.');
            }
        } else if ($role == 'sub admin') {
            if (Auth::attempt(array('email' => $email, 'password' => $pass, 'status' => 'Active'), true)) {
                $check_email = Auth::user()->email;
                $request->session()->put('email', $check_email);
                $user_type = Auth::user()->user_type;
                $request->session()->put('user_type', $user_type);
                return redirect(route('admin::dashboard'));
            } else {
                return redirect()->back()->with('error', 'Login Failed !!! Please check Your Email and Password.');
            }
        }
    }
}

My Middleware:-

public function handle($request, Closure $next)
{
    if ( isset(Auth::user()->id) && (Auth::user()->hasRole(['admin', 'sub admin']))) {
        return $next($request);
    }else{
        return redirect(route('admin'));
    }
}

Admin Login Route:-

Route::get('admin', ['as' => 'admin', 'uses' => 'Admin\AdminController@index']);


Route::post('admin-login', ['as'=>'admin_login' ,'uses'=>'Admin\AdminController@Check_login']);

Route::get('logout', ['as' => 'logout', 'uses' => 'Admin\AdminController@logout']);

User Login Route:-

Route::post('user-login-check', ['as' => 'user_login_check', 'uses' => 'Frontend\LoginController@user_login_check']);


Route::get('user-logout', ['as' => 'user_logout', 'uses' => 'Frontend\LoginController@user_logout']);

I check everything before login but why this happen? why I logged in as admin user also gets login with same email ID



via Chebli Mohamed