LARAVEL 8 - 无法将数据从控制器传递到视图 - >未定义的变量$test



大家好,我在SO中遇到了很多次的问题,但我不明白为什么人们给出的解决方案都不适合我。。我正试图在下拉菜单中打印数据库中的所有表(这样我就可以选择一个表,然后用crud修改它(,使用web.php来处理路由、控制器和视图。在下面的示例中,我只是试图传递一个变量,而不是整个数据库

这是我的控制器代码:

<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesDB;
use AppHttpControllersController;
use IlluminateSupportFacadesView;
class EditController extends Controller
{
public function index(){
$tables = 'test';
return view('edit')->with('tables',$tables);
}
}

这是edit.blade.php的,它是变量

<div class="card-body">
@if (session('status'))
<div class="alert alert-success" role="alert">
{{ session('status') }}
</div>
@endif
<div>
Select the table you want to edit
</div>
<div class="form-group row">
<label for="table_name" class="col-md-4 col-form-label text-md-right">Tables</label>
<div class="col-md-6" style="width: border-box">
<SELECT id= "table_name" type="text" class="form-control @error('tables') is-invalid @enderror" name='table_name' style="width: 300px">


<option> {{ $tables }}</option>


</SELECT>
@error('tables')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>

</div>

最后,这是thw-web.php

Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/edit', [AppHttpControllersEditController::class, 'index']); // <-this is the controller
Route::get('/edit', [AppHttpControllersHomeController::class, 'openEditBlade'])->name('edit');
Route::get('/home', [AppHttpControllersHomeController::class, 'index'])->name('home');
Route::get('/logout', 'AppHttpControllersAuthLoginController@logout');

不能有多个具有相同路由的Route::get((函数。所以,若您需要调用控制器中的任何额外函数,请在控制器中执行。

Route::get('/edit', [AppHttpControllersEditController::class, 'index']);

在EditController.php 中

public function index() {
// run the codes
// call other function.
$this->openEditBlade();
// return view
return view('edit')->with('tables',$tables);   
}

最新更新