Can you share blade where you use $allClients
Issue combining single instance model relation and collection model query in same controller action
I have an issue in a controller action where I'm trying to get both a single instance of a model via a relationship, as well as a broader query of that model via a general eloquent builder.
Example code from inside my controller function:
$client = $template->client;
$allClients = Client::where('company_id', $company->id)->get();
return view('templates.new-project')->with('client', $client)->with('company', $company)->with('template', $template)->with('allClients', $allClients);
This works find in my view, however as soon as I apply any additional condition or parameter to the $allClients query, the output of {{ client->title }} changes to NOT be the result that should be there for the first line of code in places where I use the {{ client->title }} variable outside of the @yeild(content) section of my layout
Further example, clarification...
First, if I change my controller code to be something like:
$client = $template->client;
$allClients = Client::where('company_id', $company->id)->orderBy('title)->get();
return view('templates.new-project')->with('client', $client)->with('company', $company)->with('template', $template)->with('allClients', $allClients);
Then in my view:
- In my navbar which is in layouts/app.blade.php and uses the client name as part of a breadcrumb nav,
{{ client->title }}before the@yeild(content)tag, will show the title of the last client from $allClients, not what I expect it to be - in the main part of the page that is rendered from within the actual blade template that extends the general app layout, then
{{ client->title }}outputs the right title for what I would expect from the$clientvariable I am specifically setting in the controller
This happens even if I simply set the sortBy within my blade view inside the foreach loop...
So I'm just wondering why the $allCleints query/variable in my view is "spilling out" into my layout and overriding the $client variable which I have explicitly set to one result in my controller, and works fine in the other parts of the view?
Note: there is no $client parameter as part of the route, and it doesn't seem to matter what I call the $allCleints variable
Please or to participate in this conversation.