laravel如何指定输入列

时间:2014-06-18 10:44:14

标签: php mysql laravel laravel-4 blade

我在html中有一个表单,其中包含名为restaurantName的输入,但我在数据库中的列是name。我无法在控制器中使用它

Restaurant::create(Input::only('restaurantName'));

因为没有restaurantName列,所以我的问题是如何告诉laravel restaurantName被绑定到name

非常感谢

修改

html表单包含以下字段:

restaurantName
website
username
password
mobileNumber
firstName
lastName

数据库有两个表AdminRestaurant,每个餐厅有一个管理员,每个餐厅的管理员都是一个,所以这是一对一的关系

当我提交表格时,我会执行以下操作:

$input = Input::all();
 $admin = Admin::create(Input::only('username', 'password', 'mobileNumber', 'firstName', 'lastName'));

                $data = ['name' , Input::get('restaurantName'), 'website' => Input::get('website')];
                $restaurant = new Restaurant($data);
                $admin->restaurant()->save($restaurant);

admin行已插入数据库,因此问题以$data行代码开头。

例外是:

BadMethodCallException
Call to undefined method Illuminate\Database\Query\Builder::save()

1 个答案:

答案 0 :(得分:3)

首先,你不应该盲目地将用户输入传递给模型,其次,这个特殊问题与laravel完全无关。

您的问题可以通过基本的PHP解决。简单地说,创建自己的输入数组。

$data = [
    'field'    => Input::get('field'),
    'name'     => Input::get('restaurantName')
];

似乎有一种严重的误解,认为Laravel是它自己的独立系统,事实并非如此。它实际上是PHP代码的集合,它不会做任何用PHP无法完成的事情,并且它不会阻止你做任何你通常用PHP做的事情。