Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 01.04.2019 21:32:41

Получить ID строки

Как получить ID строки в переменную?
пробовал таким образом
поля в таблице apartaments
('id');
('adress');
'apartament');
('acc');
('name_apartament');
('total_area');
('area_balconies');
('inhab_registered');
('lives_residents');

namespace App\Http\Controllers\Art;

use DB;
use App\Skpu_member;
use App\Member;
use App\User;
use App\Apartament;
use App\Role;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\View;
use App\Http\Controllers\Controller;
use Illuminate\Http\Response;
use Illuminate\Http\RedirectResponse;
use Auth;

public function create(Request $request){
$user = User::find(Auth::id());
$user->members()->attach($member_id);

$acc = $request->input('acc');
$apartaments = DB::table('apartaments')->select('id')->where('acc','=',$acc)->get();
$apartament_id = Apartament::find($apartaments)->id;
$user->apartaments()->attach($apartament_id);

return view('art.home');
}

Object of class stdClass could not be converted to string
это здесь

return substr_replace($subject, $replace, $position, strlen($search));

Мне кажется не работает это - where('acc','=',$acc),

Как решить это?

Изменено igordey (01.04.2019 21:36:23)

Не в сети

#2 04.04.2019 16:01:59

Re: Получить ID строки

Я не уверен, но ->find() ищет по строчке, а не по массиву. Строчкой выше -get() вы получаете не строчку, а массив/объект/коллекцию(у меня сложно с наименованиями).

Не в сети

#3 12.04.2019 19:41:59

Re: Получить ID строки

1. `->get()` — вернёт массив объектов (множество `->find()`)
2. `->find()` — возвращает объектную модель одной строки
3.

User — выбирать не надо воообще. Он всегда есть в `auth()->user()`

$Apartment IDS получили путём Apartments::where(’acc’,’=’,$acc)->pluck(’id’)

связать auth()->user()->attach( $Apartments );
но только в случае наличия пивот-таблицы и связей с обоих сторон вида BelongsToMany

Не в сети

Подвал раздела