無法從 js axios.get 請求打開 sqlite DB 檔案:(console.log 輸出例外訊息)。該請求可能會呼叫我的 PHP 控制器以從 DB 中選擇資料并將其回傳 json 編碼。
另一方面,PHP 控制器使它的作業很好:screenshot
通過這種方式,我嘗試從 Vue 表單發送 axios 請求:螢屏截圖 或代碼:
Vue.createApp({
data: () => ({
processors:'',
memory:'',
drives:'',
motherboards:'',
cases:'',
}),
methods:{
fetchProcessors:function (){
axios.get('/src/controllers/getProcessors.php').then(
(response) => {
this.processors = response.data;
console.log(response);
});
}
},
created:function (){
console.log('vue is ok');
this.fetchProcessors();
}
}).mount(".js-form");
PHP控制器代碼:
<?php
require_once __DIR__ . '/../../vendor/autoload.php';
use Doctrine\DBAL;
$connectionParams = [
'url' => 'sqlite3:///db/calc_db.sqlite3'
];
try {
$conn = DBAL\DriverManager::getConnection($connectionParams);
$data = $conn->fetchAllAssociative('SELECT name, cost FROM processors');
echo json_encode($data, JSON_THROW_ON_ERROR);
} catch (Exception $e) {
echo $e->getMessage();
}
我試圖:
- 給整個專案 chmod 777
- 使用 phpstorm 工具發出請求(回傳相同的例外訊息)
- 從控制器發送 const json - 它很好,證明 js 請求和 php 控制器正常作業,問題與 DB 檔案有關(我認為是這樣)
- 使用 sqlite 驅動程式而不是 sqlite3
完整的堆疊跟蹤
uj5u.com熱心網友回復:
問題出在“路徑”引數中:我已經從專案根目錄(作業目錄)啟動了我的腳本,因此我的資料庫的相對路徑可以正確構建。
在網路服務器上,WD 是一條路徑,我在請求中給出了(控制器目錄),因此我的資料庫的相對路徑構建不正確。
我已經像這樣替換了路徑引數,一切正常:
$connectionParams = [
'path' => dirname(__DIR__, 2) . '/db/calc_db.sqlite3',
'driver' => 'pdo_sqlite'
];
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/476323.html
