googleapis / googleapis/google-cloud-php

Problem with createDataset

Open
#7,614 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
PHP
Stars
1.2k
Forks
463
Avg merge
2d 1h
Merged PRs (30d)
145

Description

#### Environment details

- OS: Windows 10
- PHP version: 8.2.12
- Package name and version: cloud-ai-platform v.1.3

#### Steps to reproduce

1. I'm use the example https://github.com/googleapis/google-cloud-php-ai-platform/blob/main/samples/V1/DatasetServiceClient/create_dataset.php for create a Dataset for Tabular data, when I called the example I have the next error:

```bash
foreach() argument must be of type array|object, null given

at vendor\google\gax\src\RequestBuilder.php:174
170▕
171▕ $body = null;
172▕ $queryParams = [];
173▕ $messageData = json_decode($messageDataJson, true);
➜ 174▕ foreach ($messageData as $name => $value) {
175▕ if (array_key_exists($name, $config['placeholders'])) {
176▕ continue;
177▕ }
178▕

1 vendor\google\gax\src\RequestBuilder.php:174
Illuminate\Foundation\Bootstrap\HandleExceptions::Illuminate\Foundation\Bootstrap\{closure}("foreach() argument must be of type array|object, null given", "C:\...\vendor\google\gax\src\RequestBuilder.php")

2 vendor\google\gax\src\RequestBuilder.php:110
Google\ApiCore\RequestBuilder::constructBodyAndQueryParameters(Object(Google\Cloud\AIPlatform\V1\CreateDatasetRequest), ["post", "/v1/{parent=projects/*/locations/*}/datasets", "dataset"])
```
The code it's the same of the example https://github.com/googleapis/google-cloud-php-ai-platform/blob/main/samples/V1/DatasetServiceClient/create_dataset.php.

#### Code example

```php

// The called to function are:

$formattedParent = DatasetServiceClient::locationName('lab-ia-430919', 'us-central1');
$this->create_dataset(
$formattedParent,
'example-ventas',
'gs://bucket-ia-example/schemaDatasetVertexAI.yaml'
);

function create_dataset(
string $formattedParent,
string $datasetDisplayName,
string $datasetMetadataSchemaUri
): void {
// Create a client.
$datasetServiceClient = new DatasetServiceClient();

// Prepare the request message.
$datasetMetadata = new Value();
$dataset = (new Dataset())
->setName($datasetDisplayName)
->setDisplayName($datasetDisplayName)
->setMetadataSchemaUri($datasetMetadataSchemaUri)
->setMetadata($datasetMetadata);
$request = (new CreateDatasetRequest())
->setParent($formattedParent)
->setDataset($dataset);

// Call the API and handle any network failures.
try {
/** @var OperationResponse $response */
$response = $datasetServiceClient->createDataset($request);
$response->pollUntilComplete();

if ($response->operationSucceeded()) {
/** @var Dataset $result */
$result = $response->getResult();
printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
} else {
/** @var Status $error */
$error = $response->getError();
printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
}
} catch (ApiException $ex) {
printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
}
}

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.