Create common helper function
April 6, 2025 · AI Conversations
User
create common helper function like langauge table data to get anywhere controller, balde files
Assistant
To create a **common helper function** to fetch the `languages` table data that you can use **anywhere** — in controllers, Blade files, or Vue components (via Inertia) — follow these steps:
—
### ✅ Step 1: Create a Helper File
Create a file inside `app/Helpers` (create the folder if it doesn't exist):
mkdir -p app/Helpers
touch app/Helpers/CommonHelper.php
**app/Helpers/CommonHelper.php**
<?php
use AppModelsLanguage;
if (!function_exists('get_languages')) {
function get_languages()
{
return Language::all(); // Or add ->pluck('name', 'id') if needed
}
}
—
### ✅ Step 2: Register Helper in `composer.json`
Open your `composer.json` and autoload the helper:
"autoload": {
"files": [
"app/Helpers/CommonHelper.php"
]
}
Then run:
composer dump-autoload
—
### ✅ Step 3: Use Anywhere in Laravel
#### 🔹 In a Controller:
public function create()
{
$languages = get_languages();
return view('your-view', compact('languages'));
}
#### 🔹 In a Blade file:
@foreach(get_languages() as $language)
<option value="{{ $language->code }}">{{ $language->name }}</option>
@endforeach
—
### ✅ Optional: Share with All Views (Globally)
If you always need this data in views, add it in a **Service Provider**, like `AppServiceProvider`.
**app/Providers/AppServiceProvider.php**
use IlluminateSupportFacadesView;
public function boot()
{
View::share('languages', get_languages());
}
Then in your Blade:
@foreach($languages as $language)
...
@endforeach
—
Let me know if you also want this shared with Vue via Inertia (like `$page.props.languages`) or API responses.