<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
itstructure / laravel-multilingual-tools example snippets
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
public function run()
{
$this->call(MultSeeder::class);
}
}
use Illuminate\Database\Schema\Blueprint;
use Itstructure\Mult\Classes\MultilingualMigration;
class CreatePagesTable extends MultilingualMigration
{
public function up()
{
$this->createMultilingualTable('pages', function (Blueprint $table) {
$table->string('title', 64);
$table->text('description')->nullable();
}, function (Blueprint $table) {
$table->unsignedTinyInteger('active')->default(0)->index();
$table->string('alias', 64)->index();
});
}
public function down()
{
$this->dropMultilingualTable('pages');
}
}
$model = Page::findOrFail($id);
$model->title_en = 'New title value';
$model->save();
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Itstructure\Mult\Traits\MultilingualModelTrait;
class Page extends Model
{
use MultilingualModelTrait;
protected $table = 'pages';
protected $fillable = ['active', 'alias'];
}
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class PageLanguage extends Model
{
protected $table = 'pages_languages';
protected $fillable = ['pages_id', 'languages_id', 'title', 'description'];
public function page() // It is not necessary to create
{
return $this->hasOne(Page::class, 'id', 'pages_id');
}
public function language() // It is not necessary to create
{
return $this->hasOne(Language::class, 'id', 'languages_id');
}
}
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Itstructure\Mult\Models\Language;
use Itstructure\Mult\Helpers\MultilingualHelper;
class StorePageRequest extends FormRequest
{
protected $shortLanguageList = [];
public function __construct()
{
parent::__construct();
$this->shortLanguageList = Language::shortLanguageList();
}
public function authorize()
{
return true;
}
public function rules()
{
$multilingualRules = MultilingualHelper::fieldsTransformer([
'title' => '= MultilingualHelper::fieldsTransformer([
'title' => __('messages.title'),
'description' => __('messages.description')
], function ($fieldValue) {
return $fieldValue;
}, $this->shortLanguageList);
return array_merge([
'active' => __('messages.activity'),
'alias' => __('messages.alias')
], $multilingualAttributes);
}
}
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller;
use Itstructure\Mult\Models\Language;
use Itstructure\Mult\Helpers\MultilingualHelper;
use App\Models\Page;
use App\Http\Requests\StorePageRequest;
class PageController extends Controller
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
public function create()
{
$languageList = Language::languageList();
return view('page.create', compact('languageList'));
}
public function store(StorePageRequest $request)
{
MultilingualHelper::fill(new Page(), $request->all())->save();
return redirect()->route('page_list');
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.