Create common helper function

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.

Leave a Comment

Your email address will not be published. Required fields are marked *