strpos() 期望参数 1 是字符串,对象给定 laravel 5.5

Posted

技术标签:

【中文标题】strpos() 期望参数 1 是字符串,对象给定 laravel 5.5【英文标题】:strpos() expects parameter 1 to be string, object given laravel 5.5 【发布时间】:2018-07-04 15:02:43 【问题描述】:

这是我的代码:

public function getLists(Request $request)

    $user = $request->user()->id;
    $apikey = DB::table('apikey')->where('api_key', '=', $user);

    if($apikey)
    $mc = new MailChimp($apikey);
    $mailchimp_ping = $mc->get('lists',['fields' => 
        'lists.id,lists.name']);
    return Response::json($mailchimp_ping, 200);
    
    else
            
        $errorResponse = [
            'message' => 'Lists not found!',
            'error' => '401'
        ];
        return Response::json( $errorResponse);
    

我正在尝试根据登录的用户 ID 获取 mailchimp 列表,我做错了什么?我的 where 子句是否需要别的东西? 任何帮助将不胜感激!

【问题讨论】:

显示你的完整错误 【参考方案1】:

使用value() 方法执行查询并获取密钥。例如,如果一个带有键的列被称为apikey

$apikey = DB::table('apikey')->where('api_key', $user)->value('apikey');

【讨论】:

它的说法(在 null 上调用成员函数 get())我的代码是 $user = $request->user()->id; $apikey = DB::table('apikey')->where('api_key','=', $user)->value('api_key')->get(); @syed1234 去掉get(),仔细看答案 对不起我的错误我删除了 get();现在它向我显示未找到列表消息 @syed1234 你不应该使用get(),因为它会给你一个集合而不是字符串。新错误与问题无关,因此,您应该创建一个新问题并解释您使用的 MailChimp 包到底是什么,您到底有什么错误(完整的错误消息)等。 我正在使用DrewM\MailChimp\MailChimp;即使我有针对该 apikey 的列表,它也会转到我的 else 部分显示未找到的列表【参考方案2】:

在我的情况下,当更改此错误时出现此错误:

 Route::view('/report', '/main_pages/orders_parts/report')->name('guzorishi_order_1');

Route::get('/report/order_id', function ($order_id) ... )->name('guzorishi_order_1');

但是忘了Route::view一个 重命名为Route::get

【讨论】:

以上是关于strpos() 期望参数 1 是字符串,对象给定 laravel 5.5的主要内容,如果未能解决你的问题,请参考以下文章

ErrorException htmlspecialchars() 期望参数 1 是字符串,给定对象 ()

Laravel - htmlspecialchars() 期望参数 1 是字符串,给定对象

htmlentities() 期望参数 1 是字符串,给定对象

Laravel - strtolower() 期望参数 1 是字符串,给定对象

Laravel 6 pathinfo() 期望参数 1 是字符串,给定对象

ErrorException (E_ERROR) rawurlencode() 期望参数 1 是字符串,给定对象