Intereting Posts
Как кодировать массив в JSON без json_encode ()? Проверка, есть ли високосный день в таймере Как работает jQuery.post () с Content-Disposition: attachment? Сохранение дополнительных данных в таблицу объединений в методе добавления в CakePHP 3.0 Как структурировать стиль композитора приложения MVC? Проблемы с извлечением exif-данных для exif 2.3 с использованием PHP версии 5.2.9 многие элементы списка для другого Как я могу получить текущий месяц и предыдущие три месяца, используя PHP Как читать файл с другого FTP-хоста без использования пропускной способности хоста OpenSSL не будет создавать закрытые ключи? Как вы храните случайные части массива в массиве и затем печатаете в виде списка? PHP поиск ключа в массиве и вернуть его значение? Текст UTF-8 искажается, когда форма отправляется как multipart / form-data в PHP PHP Apostrophe и строка запроса Как вы используете PHPUnit для проверки функции, если эта функция должна убивать PHP?

Создайте инструкцию Insert … Select в Laravel

Мне нужно преобразовать этот запрос для Laravel, и у меня возникают проблемы с попыткой создать инструкцию Insert … Select с использованием Eloquont ORM от Laravel или запросов. Я не уверен, как я буду создавать этот запрос.

Insert into Demand (Login, Name, ApptTime, Phone, Physician, Location, FormatName, FormatDate, FormatTime, ApptDate, FormatPhone, cellphone) Select Login, Name, ApptTime, Phone, Physician, Location, FormatName, FormatDate, FormatTime, ApptDate, FormatPhone, cellphone from " . [dbname] . " Where " . $where_statement 

Как можно создать этот запрос с помощью ORM Laravel?

EDIT: Я не уверен, ясно ли это, но я думаю с точки зрения 1 запроса, например, они здесь http://dev.mysql.com/doc/refman/5.0/en/insert-select.html

В одном запросе нет способа сделать это, однако я столкнулся с одной и той же проблемой и хотел удостовериться, что могу продолжать использовать определенный выбор, который я строю с QueryBuilder.

Итак, что вы могли бы сделать, чтобы сохранить что-то наполовину чистое и повторное использование функций, которое ранее создало предложение select, заключается в следующем:

 /** * Wherever your Select may come from **/ $select = User::where(...) ->where(...) ->whereIn(...) ->select(array('email','moneyOwing')); /** * get the binding parameters **/ $bindings = $select->getBindings(); /** * now go down to the "Network Layer" * and do a hard coded select, Laravel is a little * stupid here */ $insertQuery = 'INSERT into user_debt_collection (email,dinero) ' . $select->toSql(); \DB::insert($insertQuery, $bindings); 

Вы можете использовать:

 DB::insert("insert into contacts(contact_id,contact_type,account_id,created_at,updated_at) select f.id,'App\\Friend',f.account_id,f.created_at,f.updated_at from friends as f where f.id=?",[16]); 

Во-первых, вам нужно создать модель для Demand , поэтому вы можете использовать:

 $demand = new Demand; $demand->Login = $login; $demand->Name = $name; [...] $demand->save(); // <~ this is your "insert" statement $id = $demand->id; на $demand = new Demand; $demand->Login = $login; $demand->Name = $name; [...] $demand->save(); // <~ this is your "insert" statement $id = $demand->id; 

Затем для вашего оператора выбора вы можете сделать что-то похожее на эти параметры:

 $demand = Demand::find($id); // will be similar to: SELECT * FROM Demand WHERE `id` = '$id'; $demand = Demand::where('id', $id)->get(); //same as above $demand = Demand::where('id', $id)->get(array('Login', 'Name')); // will be similar to: SELECT `Login`, `Name` FROM Demand WHERE `id` = '$id'; 

В руководстве здесь содержится гораздо больше информации.