The following code of laravel in not working in sublime - laravel

I want the names I have stored in the array but it is not picking up the names besides showing this output!!!
<UL>
#foreach($customers as $customer)
<Li>({ $customer})</Li>
#endforeach
</UL>
Customers
({ $customer })
({ $customer })
({ $customer })

Change <Li>({ $customer})</Li> to <li>{{ $customer }}</li>
It is also better not to use caps in HTML tags (use li instead of Li for example).

Your blade tag isn't right. You appear to be using a bracket and a curly brace. But you should just be using two curly braces such as {{customer}} rather than ({customer}).
Try this:
<ul>
#foreach($customers as $customer)
<li>{{ $customer}}</li>
#endforeach
</ul>

Related

Undefined variable: categories in user.blade.php

I was trying to extend my user.blade.php to my views menu.blade.php. Everything works fine with my other views that use the same user.blade.php too. But not with my menu.blade.php, I get an error saying "Undefined variable: categories (View: D:\xampp\htdocs\mieaceh\resources\views\layouts\user.blade.php)" with "Possible typo $categories
Did you mean $errors?"
Here are the codes to my user.blade.php
#foreach($categories as $category)
<a href="{{ route('menu.index', ['category' => $category->slug]) }}">
<div class="card-category" style="width: 10rem; height: 4rem;">
{{ $category->name }}
</div>
</a>
#endforeach
How do I solve it?
If you want to make a piece of view that appears in multiple places, you can use blade components https://laravel.com/docs/8.x/blade#components.
This will help encapsulating this partials behavior and required data.

laravel rendering section no passing parameters data

i have a problem passing variable during the rendering of only a section
All works good but array of data passed to the section('sidebar') view create an error ($data doesn't exist)
My blade files are
Default.blade.php
..other html code before..
<body>
#include('includes.header')
<div class="container-fluid">
<div class="row">
#yield('sidebar')
<!-- main content -->
#include('includes.main')
</div>
<footer class="row">
#include('includes.footer')
</footer>
</div>
</body>
..other code after..
home.blade.php
#extends('layouts.default')
#section('sidebar')
#include('includes.sidebar')
#stop
sidebar.blade.php
..other html code before..
<h2>The current UNIX timestamp is {{ time() }}.</h2>
<ul>
#isset($data)
#foreach ($data as $item)
<li class="nav-item"> {{$item->polizza}}</li>
#endforeach
#endisset
</ul>
..other html code after..
Controller Method search
public function search(Request $request){
if ($request->ajax()) {
$data = Customers::select('id','contr_nom','email','targa','cliente')
->where('polizza',request('polizza'))
->get();
return view('pages.home',$data)->renderSections()['sidebar'];
}
//return json_encode($data);
}
I know that array $data is good because i try return just JSON and i know that just sidebar refresh because timestamp change.
But $data is not passed to sidebar section refreshed!!
Why?
Thks a lot
You have the right idea, you just need to send the variable in a form that will be recognized. I'll break it out to an extreme, to help understand the parts, but you can easily recombine for shorter code.
$view = view('pages.home', compact('data')); // Compact with the text name ('data') sends the variable through
$sections = $view->renderSections(); // returns an associative array of 'content', 'pageHeading' etc
return $sections['sidebar']; // this will only return whats in the sidebar section of the view
Using compact() should get your where you need, and is the key.

modulus with remainder laravel

I am trying to setup columns of 4 from a laravel array which works correctly. The problem is how do you handle remainders? With my loop I end up with 2 extra divs that are empty at the end of my output. I have 10 items that i'm looping over which would give me a remainder of 2.5 Here is my code.
<div class="serviceListingColumn">
<ul>
#foreach($serviceListings as $serviceListing)
#if ($serviceListing->service_category == $services->title)
<li class="serviceListingItem">{{$serviceListing->service_name}}</li>
#endif
#if($loop->iteration % 4 === 0)
</ul>
</div>
<div class="serviceListingColumn">
<ul>
#endif
#endforeach
</ul>
I would suggest chunking the original array into groups, then just looping those. Easier for the template logic.
// Use the Collection's group() functionality in your controller.
// Use collect() if it isn't a Collection already.
$array = collect($array)->chunk(4);
// Your template then doesn't need to worry about modulus,
// and can focus on displaying the chunked groups.
#foreach ($array as $group)
<div class="serviceListingColumn">
<ul>
#foreach ($group as $serviceListing)
<li class="serviceListingItem">{{ $serviceListing->service_name }}</li>
#endforeach
</ul>
</div>
#endforeach

How to show comments and replycomments in laravel

I don't know how to show comments and replycomments in my post page. My comments table contains id, sender_id, replyer_id, reply_id, comment_text.
CommentController returns a comment object. In Post.blade.php, how do I write a foreach loop or loops?
Your Controller code must be similar to this:
public function index()
{
$comments = Comment::with(['sender', 'other-relation'])->get();
return view('comments.index', compact('comments'));
}
and your blade code must be similar to this:
<ul>
#foreach($comments as $comment)
<li>{{ $comment->comment_text }}</li>
#if ($comment->sender) // or other relation
<a> {{$comment->sender->name}}<a> // relation name and column name must be fix yourself
#endif
#endforeach
</ul>
Inside blade file:
<ul>
#foreach($comments as $comment)
<li>{{ $comment->comment_text }}</li>
#endforeach
</ul>

Displaying a Table, Undefined Offset Error

I want display tables in a blade view that should be like this:
Table Image
dynamically ...
When i add another User and attach a category it should display more tables.
I have 3 Tables in my Database:
User, user_category and category
I defined the realtionship in my model files.
A User can have many Categories.
I tried it with PHP variables and a #while blade expression.
#php
$i=0;
#endphp
#foreach($users as $user)
<!-- Display Table Header -->
#while($Category[$i]->user_id == $user->id)
<!-- Display Table Rows -->
#php
$i++;
#endphp
#endwhile
#endforeach
This gave me an error: Undefined Offset: 6.
I have currently 6 rows in my Table. I can display the content when i 'hardcode' the index, like this for example: $Category[5].
The Join Query in my Controller works. I sorted it ascendent by User ID
How do i solve this problem? I'm a beginner and currently learning laravel.
Yes, i googled my problem before. Sorry for my english
If I understand your question correctly, maybe this could help you. It's just an example but you get the point.
<ul>
#foreach ($users as $user)
#foreach ($user->categories as $category)
<li>{{ $category->property_1 }}</li>
<li>{{ $category->property_2 }}</li>
<li>{{ $category->property_3 }}</li>
#endforeach
#endforeach
</ul>

Resources