user12161987
user12161987

Reputation:

How to call out the "description" to replace the "parent_id" in laravel?

so here is my question, i have done everything and my senior request me to replace the parent_id now into description as the coder know what is the integer number represent but the users doesn't know. Here is the picture My current view looks like !

As you can see inside the red column, there are two id : 1.( 999162, Testing3, Test3, 999161, active ) and 2.( 999163, testing4, test, 999162, active )

My desired output is the 1.( 999161 calls the 999161 description instead of id ). Lets take 999163 as example : the desired output should be like 999163, testing4, test, test3, active.

I don't know how to call the description to replace the parent_id,can someone help ?

 <div class="row">
    <div class="col-md-12">
        <br />
        <h3 align="center">Category Data</h3>
        <br />
        @if($message = Session::get('success'))
            <div class="alert alert-success">
                <p>{{$message}}</p>
            </div>
        @endif
        <div align="right">
            <a href="{{route('category.create')}}" class="btn btn-primary">Add</a>
            <br />
            <br />
        </div>
        <table class="table table-bordered table-striped">
            <tr>
                <th>Id</th>
                <th>Code</th>
                <th>Description</th>
                <th>Parent</th>
                <th>Status</th>
                <th>Action</th>
                <th>Action</th>
            </tr>
            @foreach($category as $row)
                <tr>
                    <td>{{$row['id']}}</td>
                    <td>{{$row['code']}}</td>
                    <td>{{$row['description']}}</td>
                    <td>{{$row['parent_id']}}</td>
                    <td>{{$row['status']}}</td>

                    <td><a href="{{action('categoryController@edit', $row['id'])}}" class="btn btn-warning">Edit</a></td>
                    <td>
                        <form method="post" class="delete_form" action="{{action('categoryController@destroy',$row['id'])}}">
                            {{  csrf_field()    }}
                            {{  method_field('DELETE')}}

                            <input type="hidden" name="_method" value="DELETE"  />
                            <button type="submit" class="btn btn-danger">Delete</button>
                        </form>
                    </td>
                </tr>
            @endforeach
        </table>
    </div>
</div>

Here is my categoryController.php coding

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request; use App\Category;

class categoryController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() {

    $category =Category::all()->toArray();
    return view('category.index',compact('category'));
}

/**
 * Show the form for creating a new resource.
 *
 * @return \Illuminate\Http\Response
 */
public function create()
{
    $parents = Category::all();//DB::table("bit_app_policy_category")->lists("name","id");
    //Category::all();
    return view('category.create',compact('parents'));
}

/**
 * Store a newly created resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function store(Request $request)
{
    $this->validate($request, [

        'code' =>  'required',
        'description'     =>  'required',
    'parent_id' => 'required',
    'status' => 'required',
    ]);
    $category = new Category([
        'id'    =>  $request->get('id'),
        'code'     =>  $request->get('code'),
    'description' => $request->get('description'),
    'parent_id' => $request->get('parent_id'),
        'status' => $request->get('status'),
    ]);
    $category->save();
    return redirect()->route('category.create')->with('success', 'Data Added');
}

/**
 * Display the specified resource.
 *
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function show($id)
{
    //
}

/**
 * Show the form for editing the specified resource.
 *
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function edit($id)
{

    $category = Category::find($id);
    return view('category.edit', compact('category','id'));

    $parents = Category::all();//DB::table("bit_app_policy_category")->lists("name","id");
    //Category::all();
    return view('category.create',compact('parents'));

    $parents = Category::all();//DB::table("bit_app_policy_category")->lists("name","id");
    //Category::all
    return view('category.edit',compact('parents'));

}

public function subRequest()
{
    return view('subRequest');
}


public function subRequestPost()
{
    $input = request()->all();
    return response()->json(['success'=>'Got Submit Request.']);
}



/**
 * Update the specified resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function update(Request $request, $id)
{
    $this->validate($request,[

        'code' =>'required',
        'description' =>'required',
        'parent_id'=>'required',
        'status'=>'required'
    ]);
    $category = Category::find($id);

    $category->code =$request->get('code');
    $category->description =$request->get('description');
    $category->parent_id =$request->get('parent_id');
    $category->status =$request->get('status');
    $category->save();
    return redirect()->route('category.index')->with('success','Data Updated');
}

/**
 * Remove the specified resource from storage.
 *
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */

public function destroy($id)
{
    $category = Category::find($id);
    $category->delete();
    return redirect()->route('category.index')->with('success','Data Deleted');
}

}

Category.php picture Category.php picture

Upvotes: 1

Views: 815

Answers (2)

user12161987
user12161987

Reputation:

This is the answer

{
/**
 * Display a listing of the resource.
 *
 * @return \Illuminate\Http\Response
 */
public function index()
{

    $tmp =Category::all()->toArray();

    $category = array();
    foreach ($tmp as $key => $row) {
        $policy = Category::find($row['parent_id']);

        $tmpResult = new Category();
        $tmpResult-> id =$row['id'];
        $tmpResult-> code =$row['code'];
        $tmpResult-> description =$row['description'];
        $tmpResult-> parent_id =$policy['description'];
        $tmpResult-> status =$row['status'];
        array_push($category, $tmpResult);
    }
    return view('category.index',compact('category'));
}

Upvotes: 0

liquid207
liquid207

Reputation: 226

Suppose you have a Category model, add blew code to your Category model class.

public function parent()
{
  return $this->belongsTo(Category::class, 'parent_id', 'id');
}

Then, replace {{$row['parent_id']}} with {{$row->parent->description}} in your code.

Upvotes: 0

Related Questions