Columbus Columbus - 2 months ago 9
PHP Question

Laravel - Return array index from file

I am using laravel 5. I have a file structure like the below:

+App
+Http
+Controllers
+ExampleController.php
+Lang
+Files
+Items.php


In my ItemsFile.php, I return an array like so:

<?php

return array(
'item1' => 'Toys',
'item2' => 'Shoes',
'item3' => 'Clothes',
'item4' => 'Cars',
);


I want to return an index from the ItemFile.php in my ExampleController.php file like this:

$selected = Lang::get('Items.item1');


But I get errors such as: Class 'App\Lang' not found

What do I need to do to include this functionality? I think it has something to do with namespaces but I am not sure what.

Answer

If you are trying to use Localisation I see a couple of weird things:

  1. In laravel 5 the language files should be in resources. Like resources/lang/en/item.php.

  2. You seem to be missing a language folder. Like /en/ in my example above.

  3. You don't have to import a class to translate something, you could just use: trans('item.item1');

So if you set it up like this it should work:

/resources/lang/en/items.php

return array(
    'item1' => 'Toys',
    'item2' => 'Shoes',
    'item3' => 'Clothes',
    'item4' => 'Cars',
);

/app/http/Controllers/ExampleController.php

$selected = trans('items.item1');
dd($selected);

note:

The language folder used is the locale specified in config/app.php.

Comments