сохранить Laravel, обновить данные в две таблицы

У меня проблема с обновлением данных в сводные таблицы.

users[id->autoincrement,username,password,firstname,lastname,lga,email]

class User extends Eloquent
{
public function lga()
{
return $this->HasMany('LGA');
}
}

userslga[id->autoincrement,user_id,lga_id]public function user()
{
return $this->belongsTo('user');
}

public function lga()
{
return $this->belongsTo('lga');
}

lga[id->autoincrement,lg_name]

class LGA extends Eloquent
{
public function lga()
{
return $this->belongsTo('User');
}
}

 When i tried querying relationship,like User::find($id)->lga  i could not figure that out.but i eventually made it work using this:
$U_LGA      = UserLga::where('user_id',$id)->lists('lga_id');

Теперь моя проблема в том, что я могу хранить данные в связанных таблицах из моего контроллера следующим образом:

if ($validation->passes())
{

$user = new User;

$user->email            = Input::get('email');
$user->username         = Input::get('username');
$user->firstname        = Input::get('firstname');
$user->lastname         = Input::get('lastname');
$user->type             = Input::get('type');
$user->phone            = Input::get('phone');
$user->password         = Hash::make(Input::get('password'));$user->save();

//save each users lga
foreach(Input::get('LGA') as $LGS)
{
$userlga = new UserLga;

$userlga->user_id       = $user->id;
$userlga->lga_id        = $LGS;

$userlga->save();
}
//end

return Redirect::to('/')->with('success','New user profile successfully created');
}

//return json error
return Response::json($validation->messages());

Но обновление будет проблемой, так как UserLga :: find ($ id) будет недействительным, потому что он такой же, как select из userlga, где id = $ id, где, как предполагается, обновляет всю строку, где user_id является текущим пользователем. id редактирую и добавляю дополнительные lga, если проверено больше lga.

Мне нужна помощь о том, как это сделать, я в замешательстве. Или я неправильно понял концепцию или запрос Eloquent Relationship, что я должен делать,

пожалуйста, кто-нибудь поможет?

РЕДАКТИРОВАТЬ

Я хотел бы запустить следующие запросы

UserLga::where('user_id',$uid)->lists('lga_id');

Я хотел бы сделать ниже, как лучше

$statement2 = "SELECT * FROM facility where LGA_id = '$fulga' ";

//loop through lga id to build query
foreach($LGA_id as $fax)
{
$statement2.= " "."OR"." "."LGA_id=". "'".$fax."'";
}

//FACILITY for User assigned LGA
$facility = DB::Select($statement2);

////////////////////////////////////////////////// /////////

// генерируем все lgaid, покрытые пользователем
////////////////////////////////////////////////// /////////////////////

$ulga = UserLga::where('user_id',$uid)->lists('lga_id');

//remove the first lgaid in array to build query and avoid repetition$sulga = array_shift($ulga);// query
$statement = "SELECT * FROM lga where id = '$sulga' ";

//loop through lga id to build query
foreach($ulga as $lga)
{
$statement.= " "."OR"." "."id=". "'".$lga."'";
}

//user assigned lga
$LGA = DB::Select($statement);

AM SORI ЭТО ОЧЕНЬ ЖЕСТКО, ЧТОБЫ Я ХОЧУ ДОБИТЬСЯ ЛУЧШЕ, ИСПОЛЬЗУЯ ОТВЕТ

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]