Hey,
I know this is a very vague question but I hope someone might have the time to just look at this code and tell me what they think, could I do error controlling better or does it seem fine.
<?php
Route::post('/add', [
'as' => 'SliderAdd',
'uses' => 'Admin\SliderController@store'
]);
class StoreImageFileRequest extends Request
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'image' => 'required|mimes:png,jpg,jpeg'
];
}
public function messages()
{
return [
'image.required' => 'You have not selected a file to upload.',
'image.image' => 'Invalid file format used, Please use one of the following PNG, JPG, JPEG.',
];
}
}
class Slider extends Model
{
protected $table = 'slider';
protected $fillable = ['image','active','user_id','position'];
public function scopeGetActive($query)
{
return $query->where('active', 1)->orderBy('position', 'asc');
}
}
class SliderController extends Controller
{
public function store(StoreImageFileRequest $request)
{
if ( ! $request->file('image')->isValid())
{
return response()->makeAjax($request, 'SliderHome', [
'status' => 'false',
'message' => trans('errors.unknownupload') // unable to upload file, unknown error occurred.
]);
}
try {
$image_name = str_random(10) . '.' . $request->file('image')->getClientOriginalExtension();
$request->file('image')->move(env('PUBLIC_FOLDER') . config('filepaths.slider_path') . '/', $image_name);
$user = Auth::user();
$slider_last = Slider::create([
'image' => $image_name,
'active' => '1',
'position' => 0,
'user_id' => $user->id,
]);
} catch (Exception $e) {
return response()->makeAjax($request, 'SliderHome', [
'status' => 'false',
'message' => (env('APP_DEBUG') ? '#' . $e->getLine() . ' - ' . $e->getMessage() : trans('errors.unknownupload')) // unable to upload file, unknown error occurred.
]);
}
try {
$slider_count = Slider::count();
$var = $slider_count - 1;
$new_position = 1;
$sliders = Slider::All();
while($var >= 1)
{
Slider::where('position', $var)->update(['position' => $var + 1]);
$var--;
}
$slider_last->position = $new_position;
$slider_last->save();
} catch (Exception $e) {
return response()->makeAjax($request, 'SliderHome', [
'status' => 'false',
'message' => (env('APP_DEBUG') ? '#' . $e->getLine() . ' - ' . $e->getMessage() : trans('errors.unknownupload')) // unknown error occurred
]);
}
$html = view('admin.slider.ajax.slider', [
'slider' => $slider_last
])->render();
return response()->makeAjax($request, 'SliderHome', [
'status' => 'true',
'html' => $html,
'message' => trans('errors.slideradded'), // slider added
]);
}