简体   繁体   中英

Laravel : htmlentities() expects parameter 1 to be string, array given

I am working on a Laravel project in which I need to write a custom function, but when I call this function Laravel says:

Laravel : htmlentities() expects parameter 1 to be string, array given

Here is my function:

public static function get_checkup_time(){
    $user_logged_in = Auth::user()->foreignkey_id; 
    $result = DB::table('doctors')
               ->select('checkuptime')
               ->where(['id'=>$user_logged_in])
               ->get();
    return $result;
}

And this is my view in which I am trying to invoke this function .

@if(Auth::user()->userrolebit ==2)
    {{
        DateTimeFormat::get_checkup_time()
    }}
 @endif

i don't know what I am doing wrong here.

where() expects string as first parameter, so change this:

->where(['id'=>$user_logged_in])

to this:

->where('id', $user_logged_in)

If you are trying to return just checkup time you should do this in your method

public static function get_checkup_time()
{
    $user_logged_in = Auth::user()->foreignkey_id; 

    $result = DB::table('doctors')
               ->select('checkuptime')
               ->where('id', $user_logged_in)
               ->first();

    return $result->checkuptime;
}

Edit:

Following a downvote, I've seen that mine wouldn't work as well because the ->get() call should be replaced with ->first() as in @Paul's answer. See my comment below.


The $result you are returning from the method is not a string.

Therefore {{ DateTimeFormat::get_checkup_time() }} is the one returning the error.

Returning something like $result->checkuptime should do it.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM