/home/brandsfa/.trash/app/Http/Controllers/Admin/CityUpZilaController.php
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Traits\PushNotificationTrait;
use Illuminate\Contracts\View\View;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Pagination\LengthAwarePaginator;
use App\Models\City;
use App\Models\UpZila;
use App\Models\Translation;
use Illuminate\Support\Str;
use Brian2694\Toastr\Facades\Toastr;
use Artisan;
class CityUpZilaController extends Controller
{
public function __construct(
private readonly City $city,
private readonly UpZila $upzila,
private readonly Translation $translation
){
}
public function city_index(Request $request){
$sort_search =null;
$cities = City::orderBy('id', 'desc');
if ($request->has('searchValue')){
$sort_search = $request->searchValue;
$cities = $cities->where('name', 'like', '%'.$sort_search.'%');
}
$cities = $cities->paginate(15);
$languages = getWebConfig('pnc_language') ?? null;
$defaultLanguage = $languages[0];
return view('admin-views.cityupzila.city-index',[
'cities' => $cities,
'languages' => $languages,
'defaultLanguage' => $defaultLanguage,
]);
}
public function city_store(Request $request){
// dd($request->all());
$dataArray = $this->citygetAddData($request);
$savedCategory =$this->city->create($dataArray);
$this->add($request,'App\Models\City',$savedCategory->id);
Toastr::success(translate('city_added_successfully'));
return back();
}
public function city_edit(Request $request,$id){
$sort_search =null;
$city = City::where('id',$id)->with('translations')->withoutGlobalScopes()->first();
$languages = getWebConfig('pnc_language') ?? null;
$defaultLanguage = $languages[0];
return view('admin-views.cityupzila.city-edit',[
'city' => $city,
'languages' => $languages,
'defaultLanguage' => $defaultLanguage,
]);
}
public function city_update(Request $request,$id){
$dataArray = $this->citygetAddData($request);
$savedCategory =$this->city->where('id',$id)->update($dataArray);
$this->add($request,'App\Models\City',$id);
Toastr::success(translate('city_updated_successfully'));
return back();
}
public function upzilas_index(Request $request){
$sort_search =null;
$upzilas = UpZila::orderBy('id', 'desc');
if ($request->has('searchValue')){
$sort_search = $request->searchValue;
$upzilas = $upzilas->where('name', 'like', '%'.$sort_search.'%');
}
$upzilas = $upzilas->paginate(15);
$cities = City::orderBy('id', 'desc')->get();
$languages = getWebConfig('pnc_language') ?? null;
$defaultLanguage = $languages[0];
return view('admin-views.cityupzila.upzila-index',[
'cities' => $cities,
'upzilas' => $upzilas,
'languages' => $languages,
'defaultLanguage' => $defaultLanguage,
]);
}
public function upzila_store(Request $request){
$dataArray = $this->upzilagetAddData($request);
$savedCategory =$this->upzila->create($dataArray);
$this->add($request,'App\Models\UpZila',$savedCategory->id);
Toastr::success(translate('upzila_added_successfully'));
return back();
}
public function upzilas_edit(Request $request,$id){
$upzila = UpZila::where('id',$id)->with('translations')->withoutGlobalScopes()->first();
$cities = City::orderBy('id', 'desc')->get();
$languages = getWebConfig('pnc_language') ?? null;
$defaultLanguage = $languages[0];
return view('admin-views.cityupzila.upzila-edit',[
'cities' => $cities,
'upzila' => $upzila,
'languages' => $languages,
'defaultLanguage' => $defaultLanguage,
]);
}
public function upzila_update(Request $request,$id){
$dataArray = $this->upzilagetAddData($request);
$savedCategory =$this->upzila->where('id',$id)->update($dataArray);
$this->add($request,'App\Models\UpZila',$id);
Toastr::success(translate('upzila_updated_successfully'));
return back();
}
public function citygetAddData($request)
{
return [
'name' => $request['name'][array_search('en', $request['lang'])],
'slug' => Str::slug($request['name'][array_search('en', $request['lang'])]),
];
}
public function upzilagetAddData($request)
{
return [
'name' => $request['name'][array_search('en', $request['lang'])],
'slug' => Str::slug($request['name'][array_search('en', $request['lang'])]),
'city_id' => $request['city_id'],
];
}
public function add( $request, $model, $id)
{
foreach ($request->lang as $index => $key) {
foreach (['name','description','title'] as $type){
if (isset($request[$type][$index]) && $key != 'en') {
$this->translation->insert(
[
'translationable_type' => $model,
'translationable_id' => $id,
'locale' => $key,
'key' => $type,
'value' => $request[$type][$index]
]
);
}
}
}
return true;
}
}