我想在Laravel框架中根據用戶輸入創建新的mysql表。基於用戶輸入在Laravel中創建新表格?
用戶提交在控制器中處理的表單,保存表單數據,然後基於用戶的輸入創建一個新表(以便稍後接收數據)。
在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.
});
我得到的錯誤是,該變量沒有定義。我不知道如何將用戶的輸入提供給schema :: create方法。
我無法在文檔中找到任何以這種方式創建表格的方法,或者在我最近3個小時的Google搜索過程中與此類似的任何方法。雄辯的語法有時讓我困惑,所以也許我錯過了一些明顯的東西。
任何想法?還是有一個替代純PHP/SQL來完成這個?
非常感謝
編輯:我的道歉,我在我的示例代碼做了一個錯字更早。我的問題是我不知道如何傳遞我想要的變量schema :: create()
什麼我你得到的錯誤是什麼?什麼是$ newtableschema ['array']'?數組是一個字段的名稱還是什麼? – 2014-09-22 17:05:36
另外'$ table-> text('$ colname');'不起作用,將它改爲'$ table-> text($ colname);'。 – 2014-09-22 17:07:18
我的道歉,我在解釋代碼時犯了一個錯字,我修改了原文更清晰。用戶提供了一個multidiminsional數組,但我無法弄清楚如何將它傳遞給laravel中的create table方法。 – 2014-09-22 18:04:51