【问题标题】:get blank data from api even data is available for fetch in database从 api 获取空白数据,即使数据可用于在数据库中获取
【发布时间】:2020-05-26 18:27:33
【问题描述】:

大家好,现在我正在开发 laravel 项目,在这个项目中,我制作了 2 个 api,其中一个运行得很好,就像我从数据库中准确获取所有数据一样,但是在第二个 api 中,我得到空白数据意味着两个 api 都没有相同但只是从一个 api 我从 ID 获取数据,在第二个 api 我从电子邮件获取数据请帮助我。

这是我的 api.php 代码

<?php

use Illuminate\Http\Request;

/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/

Route::middleware('auth:api')->get('/user', function (Request $request) {

    return $request->user();
});
// routes/api.php
// POST /api/post?api_token=UNIQUE_TOKEN
Route::post('post', 'Api\PostController@store')->middleware('auth:api');
Route::get('/getemail/"{email}"','EmailController@databyemail');


and it's my EmailController Code

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\email;

class EmailController extends Controller
{
    public function databyemail($email){

    $data = new email();

    $data = email::find($email);

    return response()->json($data);
}}
and finally it is my email model code

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class email extends Model
{
    protected $table = 'users';
    protected $fillable = ['surname','first_name','last_name','username','email','password','language','contact_no','address','remember_token','business_id','status'];
}

请帮助我为什么我没有从数据库中得到任何东西

提前致谢

【问题讨论】:

    标签: database laravel api controller fetch


    【解决方案1】:

    我认为你应该修复你的路线,你不需要为变量使用“”标记。

    Route::get('/getemail/{email}','EmailController@databyemail');
    

    就这样使用吧。

    另外,find 可以与主键一起使用,

    代替:

    $data = email::find($email);

    用途:

    $data = email::where('email', $email)-&gt;first();

    【讨论】:

    • $data = email::find($email);您正在使用 $email 进行查找,您只能在查找中使用主键,而不是使用 $data = email::firstWhere('email', $email);
    • 亲爱的,当我写 $data = email::firstWhere('email', $email);并删除 $data = email::find($email);所以我得到 500 的错误
    • 那就试试吧,$data = email::where('email', $email)-&gt;first();
    • 谢谢你,亲爱的,它的工作就像一个魅力,非常感谢你让我开心
    • 好吧,我还有一个关于这个问题的疑问,你能回答我吗?或者我需要创建新问题
    猜你喜欢
    • 2014-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 2013-08-29
    相关资源
    最近更新 更多