Laravel Framework에서 사용자 입력을 기반으로 새로운 mysql 테이블을 만들려고합니다.사용자 입력을 기반으로 Laravel에서 새 테이블을 만드시겠습니까?
사용자가 컨트롤러에서 처리 된 양식을 제출하면 양식 데이터가 저장되고 나중에 데이터를 받기 위해 사용자 입력을 기반으로 NEW 테이블이 만들어집니다.
사용자 입력 : laravel 테이블에서
는 사용자의 입력에 테이블 이름과 열 이름을 내놓고 제외하고, 스키마 ::
Schema::create('newtablename', function($table){
$table->increments('id')->unique(); //primary key
$table->string('columnname');
etc.
});
는 기본적으로 나는이 작업을 수행 할 수) (작성하여 만들 수 있습니다 이 같은 다차원 배열은 다음과 같습니다
$newtableschema = array(
'tablename' => 'tablename',
'colnames' => array('One', 'Two', 'Three', 'Four');
);
Schema::create($newtableschema['tablename'], function($table){
$table->increments('id')->unique(); //primary key
foreach($newtableschema['colnames'] as $col){
$table->text($col);
}
etc.
});
내가 오류가 변수가 정의되지 않는 것입니다. 스키마 :: create 메서드에 사용자 입력을 제공하는 방법을 모르겠습니다.
Google에서 지난 3 시간 동안 검색하는 동안 이와 같은 방식으로 표를 만드는 방법이나 설명서와 다른 방법을 찾을 수 없습니다. 웅변적인 문법으로 인해 때로는 혼란 스러울 때가 있습니다.
아이디어가 있으십니까? 아니면 거기에 대체 순수 PHP/sql이 수행하는 것입니다?
많은 감사
편집 : 내 사과, 내 예제 코드에 오타 이전했다. 내 문제는 내가 원하는 변수를 스키마 :: 생성()에 전달하는 방법을 모르겠다.
당신이 얻는 오류는 무엇입니까? '$ newtableschema [ 'array']'란 무엇입니까? 'array'는 필드의 이름인가요? –
또한'$ table-> text ('$ colname');은 작동하지 않으므로'$ table-> text ($ colname); '로 변경하십시오. –
사과드립니다. 코드를 설명 할 때 오타를 만들었습니다. 원래 게시물을 더 명확하게 수정했습니다. 사용자가 multidiminsional 배열을 제공하지만 laravel의 create table 메서드에 전달하는 방법을 알 수 없습니다. –