I want to import both the price.xls and the price.xls file.
$productsArray = Excel::toArray(new ProductsImport(), 'fiyat.xls');
$products = $productsArray[0];
$dbProducts = [];
foreach ($products as $key => $value) {
if ($key > 1 && $value[5] != '' && $value[6] != '' && $value[7] != ''){
$sellPrice = strval($value[3]);
$merchantId = $value[5];
$productId = $value[6];
$priceId = $value[7];
I am writing like this, it doesn't work
$productsArray = Excel::toArray(new ProductsImport(), 'price.xls', 'price1.xls');
Related
I am using this package for my laravel application for the mongodb database: https://github.com/jenssegers/laravel-mongodb
Now, I have and id column which contain integer value like: 32312794972256
Now, I am searching like this:
$filtered = array_filter( $request->all());
$trimmed_array = array_map('trim', $filtered);
$new_arr = [];
foreach( $trimmed_array as $k => $v ) {
if( $k !== 'page' && $k !== 'projectToken' && $k !== 'userId' ) {
if( is_numeric( $v) ) {
$v = (int) $v;
}
$new_arr[] = [$k, 'LIKE', '%'. $v .'%' ];
}
}
Log::info( $new_arr );
$projectToken = $request->input('projectToken');
$userId = $request->input('userId');
$this->set_connection( $projectToken, $userId );
$get_project_id = DB::connection('mysql')->table('projects')->where('token', $projectToken )->get(['id_project'])->first();
$collection = 'products_' . $get_project_id->id_project;
$collection = 'products_103';
if(count($new_arr)) {
$search = DB::connection('mongodb')->collection( $collection )->where($new_arr)->paginate(100);
} else {
$search = DB::connection('mongodb')->collection( $collection )->paginate(100);
}
But above search query is not showing any result for this integer search. Do you know why?
I'm trying to create a command that lets me write to a json file. I'm able to do that but I'm struggling to get some values out of my if statement.
Here is my code
foreach($update as $key => $value)
{
$name = '';
$hours = '';
if($value != 0)
{
$name = $key;
$hours = $value;
}
$array = [
$name => $hours
]
}
but when I run my code I get a blank $name and a blank $hours
You're always getting last record. Also, you can ignore redundant values in your data.
I guess these lines can help you
foreach($update as $key => $value)
{
if ($value == 0) {
continue;
}
$name = $key;
$hours = $value;
$array[$name] = $hours;
}
maybe these lines help you
$update = [1 => 'a', 2 => 'b', 3 => 'c'];
foreach ($update as $key => $value) {
if ($value !== 0) {
$name = $key;
$hours = $value;
$array[$name] = $hours; // $array[]= [$name=>$hours];
}
}
note : if $update array values contain strings will return true at all because at php
('a' == 0) will return true for that i used !==
I am trying to read excel file and store that data in database. This excel file is kind of template. one would be default template and this template could be changed in future. Currently i am reading that file with many if conditions .I personally think that it isn't best way to read excel file so looking for better way.
this procedure is divided into two functions
public function importManifestFile(Request $request)
{
$path = $request->file('manifest_file')->getRealPath();
$spreadsheet = IOFactory::load($path);
$sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
foreach ($sheetData as $rows => $ManifestConsignments) {
if ($rows >= 9 && $rows <= 37) {
$this->manifestConsignment($ManifestConsignments);
}
}
}
//import file manifest consignment function
public function manifestConsignment($ManifestConsignments)
{
$consignment = new Consignment;
foreach ($ManifestConsignments as $key => $ManifestConsignment) {
if ($key == 'A') {
}
if ($key == 'B') {
$consignment->delivery_date = $ManifestConsignment;
}
if ($key == 'C') {
$addressId = $ManifestConsignment;
}
if ($key == 'D') {
$companyName = $ManifestConsignment;
}
if ($key == 'E') {
$streetAddress = $ManifestConsignment;
}
if ($key == 'F') {
$suburb = $ManifestConsignment;
}
if ($key == 'G') {
$state = $ManifestConsignment;
}
if ($key == 'H') {
$postCode = $ManifestConsignment;
}
if (isset($postCode)) {
if (Address::where('company_name', $companyName)->where('street_address', $streetAddress)->where('suburb', $suburb)->where('state', $state)->where('postcode', $postCode)->exists()) {
$deliveryAddress = Address::where('company_name', $companyName)->where('street_address', $streetAddress)->where('suburb', $suburb)->where('state', $state)->where('postcode', $postCode)->first();
$deliveryAddressId = $deliveryAddress->id;
$consignment->delivery_address = $deliveryAddressId;
unset($postCode);
} else {
$address = new Address;
$address->company_name = $companyName;
$address->street_address = $streetAddress;
$address->suburb = $suburb;
$address->postcode = $postCode;
$address->state = $state;
$address->save();
$consignment->delivery_address = $address->id;
unset($postCode);
}
if ($key == 'I') {
$consignment->carton = $ManifestConsignment;
}
if ($key == 'J') {
$consignment->pallet = $ManifestConsignment;
}
if ($key == 'K') {
$consignment->weight = $ManifestConsignment;
}
if ($key == 'L') {
$consignment->invoice_value = $ManifestConsignment;
}
if ($key == 'M') {
if (!empty($ManifestConsignment)) {
$consignment->cash_on_delivery = $ManifestConsignment;
}
}
if ($key == 'N') {
$consignment->product_type_id = 1;
}
if ($key == 'O') {
$consignment->comment = $ManifestConsignment;
}
$consignment->customer_id =1;
$consignment->status = 'In Warehouse';
$consignment->product_type_id = 1;
$consignment->save();
}
}
}
$key
in code is column name of excel file . i am checking what is column name and storing data according to that.
i have a problem in my multiple filters implementation. I have some checkboxes that pass to AJAX some params that can have multiple values.
In my controller i have written this to handle this params:
function getCategoria(Request $request) {
$path_info = Request::getPathInfo();
$path = substr($path_info, 1);
$links = explode('/', $path);
$categorie = \App\Models\Categorie::where('primaria',1)->get();
$categoria = \App\Models\Categorie::where('link_statico', $path)->first();
$categoriaz = \App\Models\Categorie::where('link_statico', $path)->first();
$id = ucfirst($links[0]);
$prodottip = \App\Models\Prdotticategorie::where('prodotti2categorie.id_categoria', $categoriaz->id)->join('prodotti', 'prodotti.id', '=', 'prodotti2categorie.id_prodotto')->query();
$brands = Input::get('brands');
$genere = Input::get('genere');
$stagione = Input::get('stagione');
$this->data['links'] = $links;
$this->data['categorie'] = $categorie;
$this->data['categoria'] = $categoria;
$this->data['categoriaz'] = $categoriaz;
$this->data['id'] = $id;
$this->data['pages'] = 'categorie.frontend';
if(count($brands) > 0 && count($genere) > 0 && count($stagione) > 0)
{
if(count($brands) > 0)
{
$brands_array = [];
if(is_array($brands) || is_object($brands))
{
foreach ($brands as $brand)
{
$brands_array[] = $brand;
}
$rst = $prodottip->whereIn('prodotti.id_produttore', $brands_array);
}
}
if(count($genere) > 0)
{
$genere_array = [];
if(is_array($genere) || is_object($genere))
{
foreach ($genere as $gen)
{
$genere_array[] = $gen;
}
$rst = $prodottip->whereIn('prodotti.genere', $genere_array);
}
}
if (count($stagione) > 0)
{
$stagione_array = [];
if(is_array($stagione) || is_object($stagione))
{
foreach ($stagione as $stag)
{
$stagione_array[] = $gen;
}
$rst = $prodottip->whereIn('prodotti.stagione', $stagione_array);
}
}
$prodottix = $rst->paginate(18);
} else {
$prodottix = $prodottip->paginate(18);
}
$this->data['prodottix'] = $prodottix;
if (Request::ajax()) {
$page = 'layouts.'.CNF_THEME.'.categorie_ajax';
$view = view($page, $this->data)->render();
return response()->json(['html'=>$view]);
}
$page = 'layouts.'.CNF_THEME.'.categorie';
return view($page, $this->data);
}
The problem is that AJAX reload correctly but the results remaining the same. I can bring it working only if i an elseif with different scenarios like this:
if(count($brands) > 0 && count($genere) > 0 && count($stagione) > 0)
//query with 3 where
elseif(count($brands) > 0 && count($genere) == 0 && count($stagione) == 0)
// query with 1 where
Hi have read something on DynamicScopes in Laravel, but i need more help thks
function getCategoria(Request $request)
{
$path_info = Request::getPathInfo();
$path = substr($path_info, 1);
$links = explode('/', $path);
$categorie = \App\Models\Categorie::where('primaria', 1)->get();
$categoria = \App\Models\Categorie::where('link_statico', $path)->first();
$categoriaz = \App\Models\Categorie::where('link_statico', $path)->first();
$id = ucfirst($links[0]);
$prodottip = \App\Models\Prdotticategorie::where('prodotti2categorie.id_categoria', $categoriaz->id)->join('prodotti', 'prodotti.id', '=', 'prodotti2categorie.id_prodotto')->query();
$brands = Input::get('brands');
$genere = Input::get('genere');
$stagione = Input::get('stagione');
$this->data['links'] = $links;
$this->data['categorie'] = $categorie;
$this->data['categoria'] = $categoria;
$this->data['categoriaz'] = $categoriaz;
$this->data['id'] = $id;
$this->data['pages'] = 'categorie.frontend';
$rst = null;
if (count($brands) > 0) {
$brands = is_object($brands) ? array($brands) : $brands;
$rst = $prodottip->whereIn('prodotti.id_produttore', $brands);
}
if (count($brands) > 0) {
$genere = is_object($genere) ? array($genere) : $genere;
$rst = $prodottip->whereIn('prodotti.genere', $genere);
}
if (count($stagione) > 0) {
$stagione = is_object($stagione) ? array($stagione) : $stagione;
$rst = $prodottip->whereIn('prodotti.stagione', $stagione);
}
if(null !== $rst) {
$prodottix = $rst->paginate(18);
} else {
$prodottix = $prodottip->paginate(18);
}
$this->data['prodottix'] = $prodottix;
if (Request::ajax()) {
$page = 'layouts.' . CNF_THEME . '.categorie_ajax';
$view = view($page, $this->data)->render();
return response()->json(['html' => $view]);
}
$page = 'layouts.' . CNF_THEME . '.categorie';
return view($page, $this->data);
}
Considering $brands,$genere,$stagione are array by
default. If it is object then then type casting to array and using in
the query.
Removed first if condition which is checking count
of all 3 arrays and then trying to build up a query.
Created new variable $rst which is having default value as null. In any condition is satisfied then it will assign the query object to $rst.
At last checking is $rst not equal to null and calling its paginate method.
Hope this will clears to you and solve your problem. If not,at least you will get an idea how you can re-factor your code :)
function getCategoria(Request $request) {
$path_info = Request::getPathInfo();
$path = substr($path_info, 1);
$links = explode('/', $path);
$categorie = \App\Models\Categorie::where('primaria',1)->get();
$categoria = \App\Models\Categorie::where('link_statico', $path)->first();
$categoriaz = \App\Models\Categorie::where('link_statico', $path)->first();
$id = ucfirst($links[0]);
$prodottip = \App\Models\Prdotticategorie::where('prodotti2categorie.id_categoria', $categoriaz->id)->join('prodotti', 'prodotti.id', '=', 'prodotti2categorie.id_prodotto')->query();
$brands = Input::get('brands');
$genere = Input::get('genere');
$stagione = Input::get('stagione');
$this->data['links'] = $links;
$this->data['categorie'] = $categorie;
$this->data['categoria'] = $categoria;
$this->data['categoriaz'] = $categoriaz;
$this->data['id'] = $id;
$this->data['pages'] = 'categorie.frontend';
if(count($brands) > 0 && count($genere) > 0 && count($stagione) > 0)
{
if(count($brands) > 0)
{
$brands_array = [];
if(is_array($brands) || is_object($brands))
{
foreach ($brands as $brand)
{
$brands_array[] = $brand;
}
$prodottip = $prodottip->whereIn('prodotti.id_produttore', $brands_array);
}
}
if(count($genere) > 0)
{
$genere_array = [];
if(is_array($genere) || is_object($genere))
{
foreach ($genere as $gen)
{
$genere_array[] = $gen;
}
$prodottip = $prodottip->whereIn('prodotti.genere', $genere_array);
}
}
if (count($stagione) > 0)
{
$stagione_array = [];
if(is_array($stagione) || is_object($stagione))
{
foreach ($stagione as $stag)
{
$stagione_array[] = $gen;
}
$prodottip = $prodottip->whereIn('prodotti.stagione', $stagione_array);
}
}
}
$prodottix = $prodottip->paginate(18);
$this->data['prodottix'] = $prodottix;
if (Request::ajax()) {
$page = 'layouts.'.CNF_THEME.'.categorie_ajax';
$view = view($page, $this->data)->render();
return response()->json(['html'=>$view]);
}
$page = 'layouts.'.CNF_THEME.'.categorie';
return view($page, $this->data);
}
I have a trouble about phpmyadmin of laravel
I want to update the data from the view on the db via controller but I get an error occurred
// save all seats
foreach ($request->all() as $key => $param) {
if ($key === '_token') continue;
$data = explode('-', $key);
$bs = new BookedSeat();
$bs->booking_id = $booking->id;
$bs->day_id = str_replace('c', '', $data[0]);
$bs->table_id = str_replace('t', '', $data[1]);
$bs->number = 0;
$bs->status = 'requested';
$bs->save();
}
its an error when i try update data
its my db
Updated
// save all seats
foreach ($request->all() as $key => $param) {
if ($key === '_token') continue;
$data = explode('-', $key);
$bs = new BookedSeat();
$bs->booking_id = $booking->id;
$day = DB::table('days')->where('name',$data[0])->get();
$bs->day_id = $day->id;
$bs->table_id = str_replace('t', '', $data[1]);
$bs->number = 0;
$bs->status = 'requested';
$bs->save();
}