简体   繁体   中英

Need Info from different id on the same table Laravel

I need a query that gives me the name of the creator of the specific person .I have a table with persons where there are two ids...

person_id creator_id

The person has a name also the creator has a name, So i need the name for the creator of the specific person, there is model Person controller everything.I am currently working on the edit blade of the person and all the info is in the same table.

TRIED

I tried creating a method in my model to somehow join the creator id to the person id but i failed

EDIT

More info..for example a person with id = 10 has

person_id = 10 , person_name = john , creator_id = 20

but the creator is also a person_id which has the name george ,there are all in the same table so im confused i also tried this in my edit controller

$creators_name = DB::table('Persons')
        ->select('person_name')
        ->where('Persons.person_id,'=',Persons.creator_id)
        ->where(Persons.person_id,'=',$id)
        ->get();

I need something like this to call it in my blade !

Try this query

SELECT person.name as personName, creator.name as creatorName
FROM person
JOIN person AS creator ON creator.id = person.creator_id

Update

in laravel way

$result = DB::table('Persons')
        ->join('Persons as creator', 'creator.id', '=', 'Persons.creator_id')
        ->select('Persons.name as personName', 'creator.name as creatorName')
        ->where(Persons.id, '=', $id)
        ->get();

I am assumming you have primary key or person_id as id

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM