Commit fb8995ec authored by Sarun Mungthanya's avatar Sarun Mungthanya
Browse files

main

parents
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
[*.{yml,yaml}]
indent_size = 2
[docker-compose.yml]
indent_size = 4
* text=auto
*.blade.php diff=html
*.css diff=css
*.html diff=html
*.md diff=markdown
*.php diff=php
/.github export-ignore
CHANGELOG.md export-ignore
/node_modules
/public/build
/public/hot
/public/storage
/storage/*.key
/vendor
.env
.env.backup
.phpunit.result.cache
Homestead.json
Homestead.yaml
npm-debug.log
yarn-error.log
/.idea
/.vscode
composer.lock
package-lock.json
\ No newline at end of file
{
"attr-lowercase": ["viewBox"]
}
php:
preset: laravel
disabled:
- no_unused_imports
finder:
not-name:
- index.php
js:
finder:
not-name:
- vite.config.js
css: true
<<<<<<< HEAD
# spn-center-laravel
spn-center-laravel
=======
# Pre Import Laravel
>>>>>>> 5904b6c (initail project copy from pre-express)
## Getting started
To make it easy for you to get started with GitLab, here's a list of recommended next steps.
Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
<<<<<<< HEAD
=======
## Laravel Documentation
- [ ] [Documentation](https://lineone-docs.piniastudio.com/laravel-guide.html)
## Installing Template
- [ ] [Installing Template](https://lineone-docs.piniastudio.com/laravel-guide.html#setup)
>>>>>>> 5904b6c (initail project copy from pre-express)
## Add your files
- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
```
cd existing_repo
<<<<<<< HEAD
git remote add origin https://idemo.netbay.co.th/gitlab/SPN/spn-center-laravel.git
=======
git remote add origin https://idemo.netbay.co.th/gitlab/SPN/pre-import-laravel.git
>>>>>>> 5904b6c (initail project copy from pre-express)
git branch -M main
git push -uf origin main
```
## Integrate with your tools
<<<<<<< HEAD
- [ ] [Set up project integrations](https://idemo.netbay.co.th/gitlab/SPN/spn-center-laravel/-/settings/integrations)
=======
- [ ] [Set up project integrations](https://idemo.netbay.co.th/gitlab/SPN/pre-import-laravel/-/settings/integrations)
>>>>>>> 5904b6c (initail project copy from pre-express)
## Collaborate with your team
- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
- [ ] [Automatically merge when pipeline succeeds](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
## Test and Deploy
Use the built-in continuous integration in GitLab.
- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html)
- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing(SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
***
# Editing this README
When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thank you to [makeareadme.com](https://www.makeareadme.com/) for this template.
## Suggestions for a good README
Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
## Name
Choose a self-explaining name for your project.
## Description
Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
## Badges
On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
## Visuals
Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
## Installation
Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
## Usage
Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
## Support
Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
## Roadmap
If you have ideas for releases in the future, it is a good idea to list them in the README.
## Contributing
State if you are open to contributions and what your requirements are for accepting them.
For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
## Authors and acknowledgment
Show your appreciation to those who have contributed to the project.
## License
For open source projects, say how it is licensed.
## Project status
If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Artisan;
class GenerateCrudCommand extends Command
{
protected $signature = 'generate:crud {model}';
protected $description = 'Generate CRUD operations for a given model';
public function handle()
{
$modelName = $this->argument('model');
// Generate controller file
Artisan::call('make:controller', [
'name' => "{$modelName}Controller",
'--model' => $modelName,
]);
// Generate view files (create, edit, index, show)
$this->generateViews($modelName);
// Output success message
$this->info("CRUD operations generated successfully for {$modelName}");
}
private function generateViews($modelName)
{
if (!file_exists(resource_path("views/components/{$modelName}"))) {
mkdir(resource_path("views/components/{$modelName}"), 0755, true);
}
// Generate view files
$viewStubPath = base_path('resources/views/components/companies');
$views = ['create', 'edit', 'index', 'breadcrumb'];
foreach ($views as $view) {
$stubContent = file_get_contents("{$viewStubPath}/{$view}.blade.php");
file_put_contents(resource_path("views/components/{$modelName}/{$view}.blade.php"), $stubContent);
}
}
}
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')->hourly();
}
/**
* Register the commands for the application.
*
* @return void
*/
protected function commands()
{
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
}
<?php
namespace App\Exceptions;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Throwable;
class Handler extends ExceptionHandler
{
/**
* A list of exception types with their corresponding custom log levels.
*
* @var array<class-string<\Throwable>, \Psr\Log\LogLevel::*>
*/
protected $levels = [
//
];
/**
* A list of the exception types that are not reported.
*
* @var array<int, class-string<\Throwable>>
*/
protected $dontReport = [
//
];
/**
* A list of the inputs that are never flashed to the session on validation exceptions.
*
* @var array<int, string>
*/
protected $dontFlash = [
'current_password',
'password',
'password_confirmation',
];
/**
* Register the exception handling callbacks for the application.
*
* @return void
*/
public function register()
{
$this->reportable(function (Throwable $e) {
//
});
}
}
<?php
namespace App\Http\Controllers;
use App\Models\TabUser;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rules\Password;
class AuthController extends Controller
{
public function loginView()
{
return view('login');
}
public function login(Request $request)
{
$validator = Validator::make($request->all(), [
'username' => ['required'],
'password' => ['required'],
]);
if ($validator->fails()) {
return redirect()->back()->withErrors($validator)->withInput();
}
$credentials = [
'USERNAME' => $request->input('username'),
'password' => $request->input('password')
];
$user = TabUser::where('USERNAME', 'sarun')->where('PASSWORD', 'sarun')->first();
if (Auth::loginUsingId($user->UID)) {
return redirect()->route('index');
} else {
$errors = new \Illuminate\Support\MessageBag();
$errors->add('password', 'The password does not match with username');
return redirect()->back()->withErrors($errors)->withInput();
}
}
public function registerView(){
return view('register');
}
public function register(Request $request){
$validator = Validator::make($request->all(), [
'name' => ['required', 'string'],
'email' => ['required', 'email','unique:users'],
'password' => ['required',"confirmed", Password::min(7)],
]);
$validated = $validator->validated();
$user = User::create([
'name' => $validated["name"],
"email" => $validated["email"],
"password" => Hash::make($validated["password"])
]);
auth()->login($user);
return redirect()->route('index');
}
public function logout()
{
auth()->logout();
return redirect()->route('login');
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Str;
class GenModelController extends Controller
{
/**
* Generate models for all tables in the database.
*
* @return \Illuminate\Http\Response
*/
public function generateModels()
{
// Get all table names in the database
$tableNames = $this->getAllTableNames();
foreach ($tableNames as $tableName) {
// Create the model name by converting the table name to studly case
$modelName = Str::studly(Str::singular($tableName));
// Generate the model file content
$modelContent = $this->generateModelContent($tableName, $modelName);
// Define the path to save the model file
$modelFilePath = app_path("Models/{$modelName}.php");
// Save the model file
file_put_contents($modelFilePath, $modelContent);
echo "Model created for table $tableName.\n";
}
echo "Models generation completed.\n";
}
/**
* Get all table names from the database.
*
* @return array
*/
private function getAllTableNames()
{
$tables = [];
// Get the database connection
$connection = DB::connection();
// Get the database name
$databaseName = $connection->getDatabaseName();
// Query to get all table names in the database
$query = "SELECT table_name FROM information_schema.tables WHERE table_schema = '{$databaseName}'";
// Execute the query
$results = $connection->select($query);
// Extract table names from the results
foreach ($results as $result) {
$tables[] = $result->table_name;
}
return $tables;
}
/**
* Generate model content for a given table name and model name.
*
* @param string $tableName
* @param string $modelName
* @return string
*/
private function generateModelContent($tableName, $modelName)
{
// Retrieve the table's column information
$columns = Schema::getColumnListing($tableName);
// Generate the model content
$content = "<?php\n\n";
$content .= "namespace App\Models;\n\n";
$content .= "use Illuminate\Database\Eloquent\Model;\n\n";
$content .= "class {$modelName} extends Model\n";
$content .= "{\n";
$content .= " protected \$table = '{$tableName}';\n";
$content .= " protected \$fillable = [\n";
// Generate the fillable fields
foreach ($columns as $column) {
$content .= " '{$column}',\n";
}
$content .= " ];\n";
$content .= "}\n";
return $content;
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
public function index() {
dd("ddd");
return view("home");
}
}
<?php
namespace App\Http\Controllers;
// use App\Http\Controllers\Storage;
class PagesController extends Controller
{
public function elementsAvatar()
{
return view('pages/elements-avatar');
}
public function elementsAlert()
{
return view('pages/elements-alert');
}
public function elementsBadge()
{
return view('pages/elements-badge');
}
public function elementsBreadcrumb()
{
return view('pages/elements-breadcrumb');
}
public function elementsButton()
{
return view('pages/elements-button');
}
public function elementsButtonGroup()
{
return view('pages/elements-button-group');
}
public function elementsCard()
{
return view('pages/elements-card');
}
public function elementsDivider()
{
return view('pages/elements-divider');
}
public function elementsMask()
{
return view('pages/elements-mask');
}
public function elementsProgress()
{
return view('pages/elements-progress');
}
public function elementsSkeleton()
{
return view('pages/elements-skeleton');
}
public function elementsSpinner()
{
return view('pages/elements-spinner');
}
public function elementsTag()
{
return view('pages/elements-tag');
}
public function elementsTooltip()
{
return view('pages/elements-tooltip');
}
public function elementsTypography()
{
return view('pages/elements-typography');
}
public function componentsAccordion()
{
return view('pages/components-accordion');
}
public function componentsCollapse()
{
return view('pages/components-collapse');
}
public function componentsTab()
{
return view('pages/components-tab');
}
public function componentsDropdown()
{
return view('pages/components-dropdown');
}
public function componentsPopover()
{
return view('pages/components-popover');
}
public function componentsModal()
{
return view('pages/components-modal');
}
public function componentsDrawer()
{
return view('pages/components-drawer');
}
public function componentsSteps()
{
return view('pages/components-steps');
}
public function componentsTimeline()
{
return view('pages/components-timeline');
}
public function componentsPagination()
{
return view('pages/components-pagination');
}
public function componentsMenuList()
{
return view('pages/components-menu-list');
}
public function componentsTreeview()
{
return view('pages/components-treeview');
}
public function componentsTable()
{
return view('pages/components-table');
}
public function componentsTableAdvanced()
{
return view('pages/components-table-advanced');
}
public function componentsTableGridjs()
{
return view('pages/components-table-gridjs');
}
public function componentsApexchart()
{
return view('pages/components-apexchart');
}
public function componentsCarousel()
{
return view('pages/components-carousel');
}
public function componentsNotification()
{
return view('pages/components-notification');
}
public function componentsExtensionClipboard()
{
return view('pages/components-extension-clipboard');
}
public function componentsExtensionPersist()
{
return view('pages/components-extension-persist');
}
public function componentsExtensionMonochrome()
{
return view('pages/components-extension-monochrome');
}
public function formsLayoutV1()
{
return view('pages/forms-layout-v1');
}
public function formsLayoutV2()
{
return view('pages/forms-layout-v2');
}
public function formsLayoutV3()
{
return view('pages/forms-layout-v3');
}
public function formsLayoutV4()
{
return view('pages/forms-layout-v4');
}
public function formsLayoutV5()
{
return view('pages/forms-layout-v5');
}
public function formsInputText()
{
return view('pages/forms-input-text');
}
public function formsInputGroup()
{
return view('pages/forms-input-group');
}
public function formsInputMask()
{
return view('pages/forms-input-mask');
}
public function formsCheckbox()
{
return view('pages/forms-checkbox');
}
public function formsRadio()
{
return view('pages/forms-radio');
}
public function formsSwitch()
{
return view('pages/forms-switch');
}
public function formsSelect()
{
return view('pages/forms-select');
}
public function formsTomSelect()
{
return view('pages/forms-tom-select');
}
public function formsTextarea()
{
return view('pages/forms-textarea');
}
public function formsRange()
{
return view('pages/forms-range');
}
public function formsDatepicker()
{
return view('pages/forms-datepicker');
}
public function formsTimepicker()
{
return view('pages/forms-timepicker');
}
public function formsDatetimepicker()
{
return view('pages/forms-datetimepicker');
}
public function formsTextEditor()
{
return view('pages/forms-text-editor');
}
public function formsUpload()
{
return view('pages/forms-upload');
}
public function formsValidation()
{
return view('pages/forms-validation');
}
public function layoutsOnboarding1()
{
return view('pages/layouts-onboarding-1');
}
public function layoutsOnboarding2()
{
return view('pages/layouts-onboarding-2');
}
public function layoutsUserCard1()
{
return view('pages/layouts-user-card-1');
}
public function layoutsUserCard2()
{
return view('pages/layouts-user-card-2');
}
public function layoutsUserCard3()
{
return view('pages/layouts-user-card-3');
}
public function layoutsUserCard4()
{
return view('pages/layouts-user-card-4');
}
public function layoutsUserCard5()
{
return view('pages/layouts-user-card-5');
}
public function layoutsUserCard6()
{
return view('pages/layouts-user-card-6');
}
public function layoutsUserCard7()
{
return view('pages/layouts-user-card-7');
}
public function layoutsBlogCard1()
{
return view('pages/layouts-blog-card-1');
}
public function layoutsBlogCard2()
{
return view('pages/layouts-blog-card-2');
}
public function layoutsBlogCard3()
{
return view('pages/layouts-blog-card-3');
}
public function layoutsBlogCard4()
{
return view('pages/layouts-blog-card-4');
}
public function layoutsBlogCard5()
{
return view('pages/layouts-blog-card-5');
}
public function layoutsBlogCard6()
{
return view('pages/layouts-blog-card-6');
}
public function layoutsBlogCard7()
{
return view('pages/layouts-blog-card-7');
}
public function layoutsBlogCard8()
{
return view('pages/layouts-blog-card-8');
}
public function layoutsBlogDetails()
{
return view('pages/layouts-blog-details');
}
public function layoutsHelp1()
{
return view('pages/layouts-help-1');
}
public function layoutsHelp2()
{
return view('pages/layouts-help-2');
}
public function layoutsHelp3()
{
return view('pages/layouts-help-3');
}
public function layoutsPriceList1()
{
return view('pages/layouts-price-list-1');
}
public function layoutsPriceList2()
{
return view('pages/layouts-price-list-2');
}
public function layoutsPriceList3()
{
return view('pages/layouts-price-list-3');
}
public function layoutsInvoice1()
{
return view('pages/layouts-invoice-1');
}
public function layoutsInvoice2()
{
return view('pages/layouts-invoice-2');
}
public function layoutsSignIn1()
{
return view('pages/layouts-sign-in-1');
}
public function layoutsSignIn2()
{
return view('pages/layouts-sign-in-2');
}
public function layoutsSignUp1()
{
return view('pages/layouts-sign-up-1');
}
public function layoutsSignUp2()
{
return view('pages/layouts-sign-up-2');
}
public function layoutsError4041()
{
return view('pages/layouts-error-404-1');
}
public function layoutsError4042()
{
return view('pages/layouts-error-404-2');
}
public function layoutsError4043()
{
return view('pages/layouts-error-404-3');
}
public function layoutsError4044()
{
return view('pages/layouts-error-404-4');
}
public function layoutsError401()
{
return view('pages/layouts-error-401');
}
public function layoutsError429()
{
return view('pages/layouts-error-429');
}
public function layoutsError500()
{
return view('pages/layouts-error-500');
}
public function layoutsStarterBlurredHeader()
{
return view('pages/layouts-starter-blurred-header');
}
public function layoutsStarterUnblurredHeader()
{
return view('pages/layouts-starter-unblurred-header');
}
public function layoutsStarterCenteredLink()
{
return view('pages/layouts-starter-centered-link');
}
public function layoutsStarterMinimalSidebar()
{
return view('pages/layouts-starter-minimal-sidebar');
}
public function layoutsStarterSideblock()
{
return view('pages/layouts-starter-sideblock');
}
public function appsChat()
{
return view('pages/apps-chat');
}
public function appsFilemanager()
{
return view('pages/apps-filemanager');
}
public function appsKanban()
{
return view('pages/apps-kanban');
}
public function appsList()
{
return view('pages/apps-list');
}
public function appsMail()
{
return view('pages/apps-mail');
}
public function appsNft1()
{
return view('pages/apps-nft-1');
}
public function appsNft2()
{
return view('pages/apps-nft-2');
}
public function appsPos()
{
return view('pages/apps-pos');
}
public function appsTodo()
{
return view('pages/apps-todo');
}
public function appsTravel()
{
return view('pages/apps-travel');
}
public function dashboardsCrmAnalytics()
{
return view('pages/dashboards-crm-analytics');
}
public function dashboardsOrders()
{
return view('pages/dashboards-orders');
}
public function dashboardsCrypto1()
{
return view('pages/dashboards-crypto1');
}
public function dashboardsCrypto2()
{
return view('pages/dashboards-crypto2');
}
public function dashboardsBanking1()
{
return view('pages/dashboards-banking1');
}
public function dashboardsBanking2()
{
return view('pages/dashboards-banking2');
}
public function dashboardsPersonal()
{
return view('pages/dashboards-personal');
}
public function dashboardsCmsAnalytics()
{
return view('pages/dashboards-cms-analytics');
}
public function dashboardsInfluencer()
{
return view('pages/dashboards-influencer');
}
public function dashboardsTravel()
{
return view('pages/dashboards-travel');
}
public function dashboardsTeacher()
{
return view('pages/dashboards-teacher');
}
public function dashboardsAuthors()
{
return view('pages/dashboards-authors');
}
public function dashboardsEducation()
{
return view('pages/dashboards-education');
}
public function dashboardsDoctor()
{
return view('pages/dashboards-doctor');
}
public function dashboardsEmployees()
{
return view('pages/dashboards-employees');
}
public function dashboardsWorkspaces()
{
return view('pages/dashboards-workspaces');
}
public function dashboardsMeetings()
{
return view('pages/dashboards-meetings');
}
public function dashboardsProjectBoards()
{
return view('pages/dashboards-project-boards');
}
public function dashboardsWidgetUi()
{
return view('pages/dashboards-widget-ui');
}
public function dashboardsWidgetContacts()
{
return view('pages/dashboards-widget-contacts');
}
}
<?php
namespace App\Http\Controllers;
use App\Models\User;
use App\Models\Group;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Redirect;
class UserController extends Controller
{
protected $route = 'user';
protected $url = '/user';
protected $prefix_folder = 'components.users.';
public function index(Request $request)
{
$serchSelected = '';
$keyword = '';
if(isset($request->search) && isset($request->keyword)) {
$serchSelected = $request->search;
$keyword = $request->keyword;
$companies = User::where($serchSelected,'LIKE','%'.$keyword.'%')->paginate(10);
}else{
$companies = User::paginate(10);
}
$url = $this->url;
$route = $this->route;
$companies->withPath($url);
$searchBy = [
"name" => "Name",
"email" => "Email",
];
return view($this->prefix_folder . 'index', compact('users', 'url', 'route', 'searchBy', 'serchSelected', 'keyword'));
}
public function create()
{
$route = $this->route;
$groups = Group::all();
return view($this->prefix_folder . 'create', compact('route', 'groups'));
}
public function edit(user $user)
{
$route = $this->route;
$groups = Group::all();
return view($this->prefix_folder . 'edit', compact('user', 'groups', 'route'));
}
public function store(Request $request)
{
$rules = array(
'name' => 'required',
'tax' => 'required|unique:companies,tax'
);
$validator = Validator::make($request->all(), $rules);
if ($validator->fails()) {
return Redirect::back()
->withErrors($validator)
->withInput();
} else {
$userData = $request->except('userType');
$userData['user_type_id'] = $request->input('userType');
$user = user::create($userData);
return redirect()->route($this->route . '.list')
->withSuccess(__('user created successfully.'));
}
}
public function update(Request $request, user $user)
{
$rules = array(
'name' => 'required',
'tax' => 'required'
);
$validator = Validator::make($request->all(), $rules);
// process the login
if ($validator->fails()) {
return Redirect::back()
->withErrors($validator)
->withInput();
} else {
$userData = $request->except('userType');
$userData['user_type_id'] = $request->input('userType');
$user->update($userData);
return redirect()->route($this->route . '.list')
->withSuccess(__('user created successfully.'));
}
}
public function destroy(user $user)
{
$user->delete();
return redirect()->route($this->route . '.list')
->withSuccess(__('user deleted successfully.'));
}
public function getUsers()
{
$users = User::select('id', 'name', 'email')->get();
$formattedUsers = [];
foreach ($users as $user) {
$formattedUsers[] = [
'id' => $user->id,
'name' => $user->name,
'email' => $user->email,
];
}
return response()->json(['users' => $formattedUsers]);
}
}
<?php
namespace App\Http\Controllers\Utils;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
class PaginatorController extends Controller
{
public static function paginate($items, $perPage = 5, $page = null, $options = [])
{
$page = $page ?: (Paginator::resolveCurrentPage() ?: 1);
$items = $items instanceof Collection ? $items : Collection::make($items);
return new LengthAwarePaginator($items->forPage($page, $perPage), $items->count(), $perPage, $page, $options);
}
}
<?php
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array<int, class-string|string>
*/
protected $middleware = [
// \App\Http\Middleware\TrustHosts::class,
\App\Http\Middleware\TrustProxies::class,
\Illuminate\Http\Middleware\HandleCors::class,
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
/**
* The application's route middleware groups.
*
* @var array<string, array<int, class-string|string>>
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array<string, class-string|string>
*/
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
];
protected $commands = [
\App\Console\Commands\GenerateCrudCommand::class,
];
}
<?php
namespace App\Http\Middleware;
use Illuminate\Auth\Middleware\Authenticate as Middleware;
class Authenticate extends Middleware
{
/**
* Get the path the user should be redirected to when they are not authenticated.
*
* @param \Illuminate\Http\Request $request
* @return string|null
*/
protected function redirectTo($request)
{
if (auth()->guest()) {
return route('login');
}
}
}
<?php
namespace App\Http\Middleware;
use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
class EncryptCookies extends Middleware
{
/**
* The names of the cookies that should not be encrypted.
*
* @var array<int, string>
*/
protected $except = [
//
];
}
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance as Middleware;
class PreventRequestsDuringMaintenance extends Middleware
{
/**
* The URIs that should be reachable while maintenance mode is enabled.
*
* @var array<int, string>
*/
protected $except = [
//
];
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment