3

I'm trying to retrieve strings from my database using Laravel Eloquent queries. However, the data I get is in full caps. I want only the first letter to be in uppercase. Can anybody help me out?

$main = DB::table('master_accountsmain')->get()

I'm passing the main to my views using...

return view('home', 'main' => $main);

I have tried using ucfirst($main), but it does not work. The data remains in uppercase.

Karl Hill
  • 12,937
  • 5
  • 58
  • 95
jptl431
  • 304
  • 1
  • 6
  • 17

3 Answers3

6

ucfirst(strtolower($main[0]->property)) is what you want to do.

$main is an array of objects because you're using ->get();

If you were fetching just one with ->first(); it would return an eloquent object and you would simply call ucfirst(strtolower($main->property))

If you have more than one result you could simply loop over or use fancy array functions builtin to php.

If it is an eloquent collection they have built in methods such as ->each() that allow you to map an array.

1

You will have to change it in lower case first with strtolower() then your ucfirst will work fine. Try it as below in order to make it works.

ucfirst(strtolower($main));
Jonathan Gagne
  • 4,241
  • 5
  • 18
  • 30
1

You can't ucfirst($array). You need to get the element of $array. Like

$fname = ucfirst(strtolower($array->fname));
Gufran Hasan
  • 8,910
  • 7
  • 38
  • 51
Vmcoder
  • 26
  • 2