【问题标题】:SQLSTATE[42S02]: Base table or view not found Error with laravel curlSQLSTATE [42S02]:未找到基表或视图 laravel curl 出错
【发布时间】:2018-04-30 01:54:23
【问题描述】:

我已经编写了两个 laravel 应用程序。 FirstAppCryptoApp(分别为应用名称)

我在其中将加密文本发送到 CryptoApp 中一个名为 (Decrypt) 的函数,该函数应该返回解密的文本

FirstApp 中,我将带有加密文本的 curl POST 请求发送到 CryptoApp

cURL 邮政编码: 在 FirstApp 中

private function DecryptApi($data)
{

    $ch = curl_init();                    // initiate curl
    $url = "http://crypto.dev/Decrypt"; // where you want to post data
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_POST, true);  // tell curl you want to post something
    curl_setopt($ch, CURLOPT_POSTFIELDS, "data=".$data); // define what you want to post
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // return the output in string format
    $output = curl_exec ($ch); // execute

    curl_close ($ch); // close curl handle

    return $output; // show output

}

路线: Route::post('/Decrypt','CryptoController@Decrypt');

功能:

public function Decrypt(Request $request)
{
    $crypt =  Crypto::find(1);

    return openssl_decrypt($request['data'],"AES-256-CBC",$crypt->secretKey,0,$crypt->iv);

}

我得到的错误是: "SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel_firstapp.crypto' 不存在(SQL: select * from crypto其中crypto.id = 1 限制 1)"

这个错误让我很困惑,因为我知道 FirstApp 没有名为“crypto”的表,但 CryptoApp 有,为什么 laravel 没有返回我想要的文本?

【问题讨论】:

  • 你有关于这个问题的更新吗??我想我也面临同样的问题

标签: laravel


【解决方案1】:

确保您的laravel_firstapp 数据库中有表。如果有,请运行迁移。

如果你的表名不是加密的,你可以在你的模型中使用protected $table = 'your table'

【讨论】:

  • 模型已经添加了该行,您能否详细说明答案的第一部分,您的意思是什么,请确保您在 laravel_firstapp 中有表格?
  • 检查您的第一个应用程序的数据库,它没有获取表来附加数据。
  • @Shwetank 这没有意义为什么我在两个应用程序上都需要同一张表,我所做的只是从 CryptoApp 返回文本
【解决方案2】:

你必须检查crypto表是否已经存在于你的CryptoApp中,还要检查你的CryptoApp中的.env文件,也许它配置了FirstApp数据库,应该是:

CryptoApp .env 文件

...
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=CryptoApp_database
DB_USERNAME=user
DB_PASSWORD=****
...

【讨论】:

  • 一切正常,为了提供更多信息,我遇到这个问题只是因为我使用的是 POST 方法,不知何故 GET 方法工作正常
  • 这真是令人困惑,您从 CryptApp 'laravel_firstapp.crypto' doesn't exist 获得的错误告诉我们您正在尝试从 laravel_firstapp 数据库访问加密表?我猜 laravel_firstapp 数据库对应于 FirstApp ?
  • 这就是我从 CryptoApp 访问加密表的东西(确切地说是 Decrypt 函数),但我也在 FirstApp 外部调用 Decrypt 函数,正如您从 Decrypt 函数中看到的那样正在返回一个纯字符串文本
猜你喜欢
  • 2017-04-19
  • 1970-01-01
  • 2016-06-21
  • 1970-01-01
  • 1970-01-01
  • 2018-03-16
  • 2017-07-21
  • 2018-01-15
  • 2018-03-11
相关资源
最近更新 更多