diff src/Generator/Controller/stubs/controller.stub @ 34:f65ab84ee47f default

merge with codex
author luka
date Wed, 10 Sep 2025 21:00:47 -0400
parents 45f384a24553
children
line wrap: on
line diff
--- a/src/Generator/Controller/stubs/controller.stub	Sat Dec 02 10:20:32 2023 -0500
+++ b/src/Generator/Controller/stubs/controller.stub	Wed Sep 10 21:00:47 2025 -0400
@@ -10,91 +10,126 @@
 {
     /**
      * Display a listing of the resource.
+     *
+     * @param {{ filterRequest }} $request
+     * @return \Illuminate\View\View
      */
-    public function index()
+    public function index({{ filterRequest }} $request)
     {
-				$data = [];
-				
-				$data['items'] = {{ model }}::all();
+				$validated = $request->validated();
+        $data = [];
+        $data['items'] = {{ model }}::get_data($validated);
+				$data = array_merge($data, {{ model }}::load_index());
 
         return view('{{ tableName }}.index', $data);
     }
 
+    public function get_data()
+    {
+        $data = [];
+        $data['records'] = {{ model }}::get_data([]);
+        $data['total_records'] = count($data['records']);
+
+        return $data;
+    }
+
     /**
      * Show the form for creating a new resource.
+     *
+     * @return \Illuminate\View\View
      */
     public function create()
     {
-				$data = []; 
+        $data = [];
+				$data = array_merge($data, {{ model }}::load_create());
 
         return view('{{ tableName }}.create_edit', $data);
     }
 
     /**
      * Store a newly created resource in storage.
+     *
+     * @param {{ storeRequest }} $request
+     * @return \Illuminate\Http\RedirectResponse
      */
     public function store({{ storeRequest }} $request)
     {
-				$validated = $request->validated();
-
-        //
-				${{ modelVariable }} = new {{ model }}();
+        $validated = $request->validated();
 
-				//insert the values into the model
-				// {{ valuesForCreation }}
-
-				${{ modelVariable }}->save();
+        {{ model }}::create($validated);
 
         return redirect()->route('{{ tableName }}.index');
     }
 
     /**
      * Display the specified resource.
+     *
+     * @param {{ model }} ${{ modelVariable }}
+     * @return \Illuminate\View\View
      */
     public function show({{ model }} ${{ modelVariable }})
     {
-				$data = [];
-				
-				$data['item'] = ${{ modelVariable }};
+        $data = [];
+        $data['item'] = ${{ modelVariable }};
+				$data['fields'] = (new {{ model }}())->getFillable();
+
+        return view('{{ tableName }}.show', $data);
+    }
 
-				return view('{{ tableName }}.show', $data); 
+		/**
+		 * Returns the resource in JSON format.
+		 *
+		 * @param ModelType $modelVariable
+		 * @return string
+		 */
+    public function load({{ model }} ${{ modelVariable }})
+    {
+        return ${{ modelVariable }}->toJson();
     }
 
     /**
      * Show the form for editing the specified resource.
+     *
+     * @param {{ model }} ${{ modelVariable }}
+     * @return \Illuminate\View\View
      */
     public function edit({{ model }} ${{ modelVariable }})
     {
-			$data = [];
+        $data = [];
+        $data['item'] = ${{ modelVariable }};
 
-			$data['item'] = ${{ modelVariable }};
+        // Load data for relationships
+				$data = array_merge($data, {{ model }}::load_edit());
 
-			return view('{{ tableName }}.create_edit', $data);
+        return view('{{ tableName }}.create_edit', $data);
     }
 
     /**
      * Update the specified resource in storage.
+     *
+     * @param {{ updateRequest }} $request
+     * @param {{ model }} ${{ modelVariable }}
+     * @return \Illuminate\Http\RedirectResponse
      */
     public function update({{ updateRequest }} $request, {{ model }} ${{ modelVariable }})
     {
-				$validated = $request->validated();
+        $validated = $request->validated();
 
-        // Set the variables
-				//{{ valuesForCreation }}
+        ${{ modelVariable }}->update($validated);
 
-				${{ modelVariable }}->save();
-
-				return redirect()->route('{{ tableName }}.index');
+        return redirect()->route('{{ tableName }}.index');
     }
 
     /**
      * Remove the specified resource from storage.
+     *
+     * @param {{ model }} ${{ modelVariable }}
+     * @return \Illuminate\Http\RedirectResponse
      */
     public function destroy({{ model }} ${{ modelVariable }})
     {
-        //
-				${{ modelVariable }}->delete();
+        ${{ modelVariable }}->delete();
 
-				return redirect()->route('{{ tableName }}.index');
+        return redirect()->route('{{ tableName }}.index');
     }
 }