本文整理汇总了PHP中Symfony\Component\DomCrawler\Form类的典型用法代码示例。如果您正苦于以下问题:PHP Form类的具体用法?PHP Form怎么用?PHP Form使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Form类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: gotoPreviousFormPage
/**
* Go to the previous form page
*
* @param \Symfony\Component\DomCrawler\Form $form
* @return \TYPO3\Flow\Http\Response
*/
protected function gotoPreviousFormPage(\Symfony\Component\DomCrawler\Form $form)
{
$previousButton = $this->browser->getCrawler()->filterXPath('//nav[@class="form-navigation"]/*/*[contains(@class, "previous")]/button');
$previousButton->rewind();
$form->set(new InputFormField($previousButton->current()));
return $this->browser->submit($form);
}
示例2: testGetFormNode
public function testGetFormNode()
{
$dom = new \DOMDocument();
$dom->loadHTML('<html><form><input type="submit" /></form></html>');
$form = new Form($dom->getElementsByTagName('input')->item(0));
$this->assertSame($dom->getElementsByTagName('form')->item(0), $form->getFormNode(), '->getFormNode() returns the form node associated with this form');
}
示例3: makeRequestUsingForm
protected function makeRequestUsingForm(Form $form)
{
$files = [];
$plainFiles = $form->getFiles();
foreach ($plainFiles as $key => $file) {
$files[$key] = new UploadedFile($file['tmp_name'], $file['name'], $file['type'], $file['size'], $file['error'], true);
}
return $this->makeRequest($form->getMethod(), $form->getUri(), $form->getValues(), [], $files);
}
示例4: isValid
public function isValid(Form $form)
{
if ($form->has('token')) {
$values = $form->getValues();
$values['token'] = 'modified by csrf scanner';
$form->setValues($values);
$this->client->submit($form);
$status = $this->client->getResponse()->getStatus();
if (403 == $status) {
return true;
}
$this->message = "403 response expected, but got a {$status}";
} else {
$this->message = "No 'token' input field found";
}
return false;
}
示例5: createFromForm
/**
* @param Form $form
*
* @return ModuleList
*/
public static function createFromForm(Form $form)
{
$node = new Crawler($form->getFormNode());
// Example: <input type="checkbox" id="edit-modules-other-oxygen-enable" name="modules[Other][oxygen][enable]" value="1" class="form-checkbox" />
$inputs = $node->filter('input[type="checkbox"][id^="edit-modules-"]');
$modules = [];
foreach ($inputs as $input) {
/** @var \DOMElement $input */
if (!$input->hasAttribute('name')) {
continue;
}
$enabled = $input->hasAttribute('checked');
$match = preg_match('{^modules\\[([^\\]]+)\\]\\[([^\\]]+)\\]\\[enable\\]$}', $input->getAttribute('name'), $matches);
if (!$match) {
continue;
}
list(, $package, $slug) = $matches;
$modules[] = new ModuleListItem($package, $slug, $enabled);
}
return new self($modules);
}
示例6: mergeForms
/**
* Merges second form values into first one.
*
* @param Form $to merging target
* @param Form $from merging source
*/
private function mergeForms(Form $to, Form $from)
{
foreach ($from->all() as $name => $field) {
$fieldReflection = new \ReflectionObject($field);
$nodeReflection = $fieldReflection->getProperty('node');
$valueReflection = $fieldReflection->getProperty('value');
$nodeReflection->setAccessible(true);
$valueReflection->setAccessible(true);
$isIgnoredField = $field instanceof InputFormField && in_array($nodeReflection->getValue($field)->getAttribute('type'), array('submit', 'button', 'image'), true);
if (!$isIgnoredField) {
$valueReflection->setValue($to[$name], $valueReflection->getValue($field));
}
}
}
示例7: testSubmitWithoutAFormButton
public function testSubmitWithoutAFormButton()
{
$dom = new \DOMDocument();
$dom->loadHTML('
<html>
<form>
<input type="foo" />
</form>
</html>
');
$nodes = $dom->getElementsByTagName('form');
$form = new Form($nodes->item(0), 'http://example.com');
$this->assertSame($nodes->item(0), $form->getFormNode(), '->getFormNode() returns the form node associated with this form');
}
示例8: getSonataAdminFormName
public function getSonataAdminFormName(Form $form)
{
parse_str(parse_url($form->getUri(), PHP_URL_QUERY), $query);
return $query['uniqid'];
}
示例9: submitEditForm
/**
* Edits the data of a form
*
* @param Client $client
* @param Form $form
* @param array $data
*/
protected function submitEditForm(Client $client, Form $form, array $data = array())
{
$originalData = array();
foreach ($form->all() as $fieldName => $formField) {
$originalData[$fieldName] = $formField->getValue();
}
$data = array_merge($originalData, $data);
$this->submitForm($client, $form, $data);
}
示例10: fillFormForUpdateTest
/**
* Fill form for address tests (update test)
*
* @param Form $form
* @return Form
*/
protected function fillFormForUpdateTest(Form $form)
{
$formNode = $form->getNode();
$formNode->setAttribute('action', $formNode->getAttribute('action') . '?_widgetContainer=dialog');
$form['orob2b_account_typed_address[types]'] = [AddressType::TYPE_BILLING, AddressType::TYPE_SHIPPING];
$form['orob2b_account_typed_address[defaults][default]'] = [false, AddressType::TYPE_SHIPPING];
$doc = new \DOMDocument("1.0");
$doc->loadHTML('<select name="orob2b_account_typed_address[country]" id="orob2b_account_typed_address_country" ' . 'tabindex="-1" class="select2-offscreen"> ' . '<option value="" selected="selected"></option> ' . '<option value="ZW">Zimbabwe</option> </select>');
$field = new ChoiceFormField($doc->getElementsByTagName('select')->item(0));
$form->set($field);
$form['orob2b_account_typed_address[country]'] = 'ZW';
$doc->loadHTML('<select name="orob2b_account_typed_address[region]" id="orob2b_account_typed_address_region" ' . 'tabindex="-1" class="select2-offscreen"> ' . '<option value="" selected="selected"></option> ' . '<option value="ZW-MA">Manicaland</option> </select>');
$field = new ChoiceFormField($doc->getElementsByTagName('select')->item(0));
$form->set($field);
$form['orob2b_account_typed_address[region]'] = 'ZW-MA';
return $form;
}
示例11: submitForm
/**
* @param Form $form
*
* @return Crawler
*/
protected function submitForm(Form $form)
{
$action = $form->getFormNode()->getAttribute('data-action');
$form->getFormNode()->setAttribute('action', $action);
return $this->client->submit($form);
}
示例12: convertUploadsForTesting
/**
* Convert the given uploads to UploadedFile instances.
*
* @param \Symfony\Component\DomCrawler\Form $form
* @param array $uploads
* @return array
*/
protected function convertUploadsForTesting(Form $form, array $uploads)
{
$files = $form->getFiles();
$names = array_keys($files);
$files = array_map(function (array $file, $name) use($uploads) {
return isset($uploads[$name]) ? $this->getUploadedFileForTesting($file, $uploads, $name) : $file;
}, $files, $names);
$uploads = array_combine($names, $files);
foreach ($uploads as $key => $file) {
if (preg_match('/.*?(?:\\[.*?\\])+/', $key)) {
$this->prepareArrayBasedFileInput($uploads, $key, $file);
}
}
return $uploads;
}
示例13: getFormValuesFor
/**
* Returns an array of name => value pairs for the passed form.
*
* For form fields containing a name ending in [], an array is
* created out of all field values with the given name.
*
* @param \Symfony\Component\DomCrawler\Form the form
* @return array an array of name => value pairs
*/
protected function getFormValuesFor(Form $form)
{
$values = [];
$fields = $form->all();
foreach ($fields as $field) {
if ($field->isDisabled() || !$field->hasValue() || $field instanceof FileFormField) {
continue;
}
$fieldName = $this->getSubmissionFormFieldName($field->getName());
if (substr($field->getName(), -2) === '[]') {
if (!isset($values[$fieldName])) {
$values[$fieldName] = [];
}
$values[$fieldName][] = $field->getValue();
} else {
$values[$fieldName] = $field->getValue();
}
}
return $values;
}
示例14: getFormValuesFor
/**
* Returns an array of name => value pairs for the passed form.
*
* The function calls getPhpValues on the passed form object, then
* resets numeric array indexes for array field names without array
* keys specified (i.e. 'fieldname[]' but not 'fieldname[keyname]')
* as expected by setCheckboxBoolValues.
*
* @param \Symfony\Component\DomCrawler\Form the form
* @return array an array of name => value pairs
*/
protected function getFormValuesFor(Form $form)
{
$values = $form->getPhpValues();
$fields = $form->all();
foreach ($fields as $field) {
$name = $this->getSubmissionFormFieldName($field->getName());
if (!empty($values[$name]) && substr($field->getName(), -2) === '[]') {
$values[$name] = array_values($values[$name]);
}
}
return $values;
}
示例15: submitForm
/**
*
* @param \Symfony\Component\DomCrawler\Form $form
* @param string $method The Request Method
*/
public function submitForm(Form $form, $method = "POST")
{
$this->getClient()->request($method, $form->getUri(), $form->getPhpValues());
}