Мне не удается получить идентификатор из главной таблицы при вводе данных в подробную таблицу (Laravel 8)Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Мне не удается получить идентификатор из главной таблицы при вводе данных в подробную таблицу (Laravel 8)

Сообщение Anonymous »

Не могли бы вы мне помочь, пожалуйста, извините, я новичок в Laravel. Я хочу получить идентификатор из мастера таблиц, но я могу отправить идентификатор только по URL-адресу и не знаю, как получить этот идентификатор для сохранения в деталях таблицы.
У меня есть две таблицы: Ниже приводится первая таблица (основная):
public function up()
{
Schema::create('landings', function (Blueprint $table) {
$table->id();
$table->string('title')->nullable();
$table->text('content')->nullable();
$table->text('photo')->nullable();
$table->timestamps();
});
}

тогда вторая таблица (подробно):
public function up()
{
Schema::create('landingmetas', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('landing_id');
$table->foreign('landing_id')->references('id')->on('landings')->onDelete('cascade')->onUpdate('cascade');
$table->string('meta_key')->unique();
$table->string('meta_value')->nullable();
$table->timestamps();
});
}

это мой контроллер, который сохраняет данные в таблице лендингов и отлично работает:
public function store(Request $request)
{
$landings = new Landing();

$landings->title = $request->title;

$landings->save();
Session::flash('landing-add','Section telah dibuat.');
return redirect()->route('landing.createlm', $landings->id);
}

как вы можете видеть в этой строке, return redirect()->route('landing.createlm', $landings->id); я перенаправляюсь на Landing.createlm. Blade.php (форма для ввода данных во вторую таблицу). на тот момент все еще работало так, как я хочу, но мне сложно вводить данные в Landingmetas, потому что я понятия не имею, как получить этот идентификатор URL. это мой контроллер для хранения данных в Landingmetas (подробная таблица):
public function storelm(Request $request)
{
$lm = new Landingmeta();

$meta_key = strtolower($request->meta_key);
$meta_key = str_replace(" ", "", $meta_key);
$lm->meta_key = substr($meta_key, 0, 3)."-".substr($meta_key, 3);
$lm->landing_id = ???? (here id from master table)

$lm->save();
Session::flash('add-field','Field telah ditambahkan.');
return back();
}

и это мой маршрут:
/*Landing page*/
Route::get('/landings', [App\Http\Controllers\LandingController::class, 'index'])->name('landing.index');
Route::post('/landings', [App\Http\Controllers\LandingController::class, 'store'])->name('landing.store');
Route::get('/landings/{landing}/create', [App\Http\Controllers\LandingController::class, 'edit'])->name('landing.edit');
Route::delete('/landings/{landing}/destroy', [App\Http\Controllers\LandingController::class, 'destroy'])->name('landing.destroy');
/*Create Landingmetas*/
Route::get('landings/{landing}/createfield', [App\Http\Controllers\LandingController::class, 'createlm'])->name('landing.createlm');
Route::post('/landinglm', [App\Http\Controllers\LandingController::class, 'storelm'])->name('landing.storelm');


Подробнее здесь: https://stackoverflow.com/questions/703 ... ble-larave
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»