>source

안녕하세요 여러분, 저는 여기에서 자주 본 문제에 직면하고 있지만 사람들이 제공하는 솔루션이 나를 위해 일하지 않는 이유를 이해하지 못합니다 .. 경로, 컨트롤러 및보기에 대해 web.php를 사용하여 드롭 다운 메뉴에서 내 db의 모든 테이블을 인쇄하려고합니다 (하나의 테이블을 선택하고 나중에 crud로 수정할 수 있도록). 예제에서 아래에서 볼 수 있습니다. 전체 데이터베이스가 아닌 변수를 전달하려고합니다.

이것은 내 컨트롤러 코드입니다.

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\View;
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>

마지막으로 이것은 web.php입니다.

Route::get('/', function () {
    return view('welcome');
});
Auth::routes();
Route::get('/edit', [App\Http\Controllers\EditController::class, 'index']); // <-this is the controller
Route::get('/edit', [App\Http\Controllers\HomeController::class, 'openEditBlade'])->name('edit');
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::get('/logout', '\App\Http\Controllers\Auth\LoginController@logout');

  • 답변 # 1

    동일한 경로에 여러 Route :: get () 함수를 사용할 수 없습니다. 따라서 컨트롤러에서 추가 기능을 호출해야하는 경우 컨트롤러에서 수행하십시오.

    Route::get('/edit', [App\Http\Controllers\EditController::class, 'index']);
    
    

    EditController.php에서

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

관련 자료

  • 이전 agm-spiderfier로 Angular 앱을 빌드하는 동안 오류가 발생했습니다
  • 다음 protocol buffers - --go_out = plugins에서 -go-grpc_out PATH 문제로 전환