小编Mar*_*łek的帖子

Laravel Blade @can 政策 - 字符串

我正在使用 Laravel 5.2。所以我正在学习如何处理角色和权限Authorization。一切都运行良好。我什至制定了自己的政策 PostPolicy。

现在解决问题了。我将 $post 数据加载到 PostsController 中的视图中,然后加载到 Blade 中。

帖子控制器

public function show($id)
{
    $post = Post::find($id);

    return view('posts.show', compact('post'));
}
Run Code Online (Sandbox Code Playgroud)

帖子/show.blade.php

@section('content')
<!-- begin -->
@can('hasRole', Auth::user())
    <h1>Displaying Admin content</h1>
@endcan

@can('hasRole', Auth::user())
    <h1>Displaying moderator content</h1>
@endcan

@can('hasRole', Auth::user())
    <h1>Displaying guest content</h1>
@endcan
Run Code Online (Sandbox Code Playgroud)

政策

  public function hasRole($user)
    {
        // just for test
        return true;
    }
Run Code Online (Sandbox Code Playgroud)

现在返回所有内容。

当我将 Auth::user() 更改 @can('hasRole', Auth::user()) 为字符串时,即

@can('hasRole', 'guest')
    <h1>Displaying guest content</h1>
@endcan
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它不会返回任何内容。由于我是 Laravel 的新手,我真的不知道它不起作用。

php laravel laravel-5 laravel-authorization

2
推荐指数
1
解决办法
3万
查看次数

在laravel 5中的belongsToMany关系中搜索

实际上,我想搜索用户在选择任何主题或课程后想要搜索的那些问题。

如果whereHas从主题或课程中删除它的作品,但两者都不起作用。

请给出一个更好的解决方案在belongsToMany 中搜索。

我有一个带有Question模型类的问题表

class Question extends Model{
    public function courses(){
        return $this->belongsToMany('App\Models\Course','course_questions');
    }

    public function subjects(){
        return $this->belongsToMany('App\Models\Subject','subject_questions');
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的 searchController

public function index(Request $request){
        $questions = Question::with(['user','courses','branches','subjects','years','universities','question_type'])
            ->where("status","=",1)
            ->where(function($query) use($request){
                $q = $request->q;
                if(isset($q) && !is_null($q)){
                    $query->where("question","LIKE","%$q%");
                }
            })
            ->whereHas('subjects',function($query) use($request){
                $subjects = $request->subject;
                if(isset($subjects)){
                    $_subjects = explode(" ",$subjects);
                    $query->whereIn("slug",$_subjects)
                    ->orWhereIn("subject_name",$_subjects);
                }
            })
            ->whereHas('courses',function($query) use($request){
                $course = $request->course;
                if(isset($course)){
                    $_course = explode(" ",$course);
                    $query->whereIn("slug",$_course)
                        ->orWhereIn("course",$_course);
                }
            })
            ->paginate();
        if($request->ajax()){
            $returnHTML = view('questions.question_list')->with('questions', …
Run Code Online (Sandbox Code Playgroud)

php mysql relationship eloquent laravel-5

2
推荐指数
1
解决办法
1050
查看次数

如何在Laravel 5中创建一个catch all url

我正在尝试创建一个以前缀"angular"开头的catchall url.我该怎么做呢?

我尝试了以下但不起作用:

Route::group(['prefix' => 'angular'], function () {
    Route::get( '{catchall}', function () {
        return "YES!"
    } )->where('catchall', '(.*)');
});
Run Code Online (Sandbox Code Playgroud)

laravel laravel-routing laravel-5 laravel-5.2

2
推荐指数
1
解决办法
307
查看次数

Laravel 5 - 如何在部署应用程序后自动播种表格?

我有一些必须在表中的数据,以便我的应用程序工作,否则我收到一条错误消息.

例如,如果你或其他任何人从github拉我的应用程序,如果你运行php artisan migrate然后尝试测试应用程序你会得到一个错误:数据不存在或类似的东西.这是因为表中没有数据.

理想的解决方案是运行后:

 php artisan migrate
Run Code Online (Sandbox Code Playgroud)

您还可以在该表中获得所需的数据.

这应该用播种机以某种方式完成,但我不知道如何.任何人都可以帮忙并举个例子吗?

如何为应该进入car_company表的数据制作种子:

id car_company

1大众汽车

2辆梅赛德斯

3奥迪

4保时捷

有4行,我想在运行后插入它们

 php artisan db:seed
Run Code Online (Sandbox Code Playgroud)

laravel laravel-5 laravel-seeding laravel-migrations

2
推荐指数
1
解决办法
1169
查看次数

Laravel多个WHERE子句

我需要在Laravel SQL查询中添加多个where子句.

到目前为止我的PHP代码已经:

date_default_timezone_set('America/Los_Angeles');

$today = getdate();
$year = $today['year'];
$month = $today['mon'];
$day = $today['mday'];

$today_ = $day.'-'.$month.'-'.$year;
$result = DB::table('task')
    ->select('*')
    ->where(
        ['rowstate', '<>', 'Ready'],
        ['DATE_FORMAT(due_date, "%d-%m-%y")', '<', $today_])
    ->get();
Run Code Online (Sandbox Code Playgroud)

但上面的代码返回:

Column not found: 1054 Unknown column '0' in 'where clause' 
(SQL: select * from `task_tab` where (`0` = rowstate and `1` = <> and `2` = Ready))
Run Code Online (Sandbox Code Playgroud)

我想生成以下SQl语句:

SELET * 
FROM task
WHERE rowstate <> 'Ready'
AND DATE_FORMAT(due_date, "%d-%m-%y") < $today
Run Code Online (Sandbox Code Playgroud)

php laravel eloquent laravel-5 laravel-5.4

2
推荐指数
1
解决办法
1万
查看次数

如何在 Laravel5.4 中减去两个日期

我是用户项目保存在其中的项目表,并具有 start_time 和 finish_time 以及价格,我将其作为具有以下代码的表单提供:

<div class="form-group">
   <input type="date" class="form-control" name="start_time" >
 </div>

 <div class="form-group">
 <input type="date" class="form-control" name="finish_time" >
 </div>

 <div class="form-group">
 <input type="text" class="form-control" name="price" >
 </div>
Run Code Online (Sandbox Code Playgroud)

现在,我想减去日期,如果结果为负 可以乘以价格和结果,我该怎么做?

date laravel php-carbon laravel-5 laravel-5.4

2
推荐指数
1
解决办法
7057
查看次数

如何删除所有排队的作业,因为这会导致错误?

我的网站将发送作业的电子邮件排队到jobs表中。我认为电子邮件服务器存在一些问题,它无法发送电子邮件,因此作业被卡在作业表中。现在也许有太多的工作,并且我收到此错误消息:

Next exception 'Illuminate\Database\QueryException' with message 'SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column 'attempts' at row 1 (SQL: update `jobs` set `reserved_at` = 1510263884, `attempts` = 256 where `id` = 342)' in /var/www/vhosts/parcgilley.com/httpdocs/vendor/laravel/framework/src/Illuminate/Database/Connection.php:647
#0 /var/www/vhosts/parcgilley.com/httpdocs/vendor/laravel/framework/src/Illuminate/Database/Connection.php(607): Illuminate\Database\Connection->runQueryCallback('update `jobs` s...', Array, Object(Closure))
#1 /var/www/vhosts/parcgilley.com/httpdocs/vendor/laravel/framework/src/Illuminate/Database/Connection.php(477): Illuminate\Database\Connection->run('update `jobs` s...', Array, Object(Closure))
#2 /var/www/vhosts/parcgilley.com/httpdocs/vendor/laravel/framework/src/Illuminate/Database/Connection.php(416): Illuminate\Database\Connection->affectingStatement('update `jobs` s...', Array)
Run Code Online (Sandbox Code Playgroud)

所以我想知道如何刷新所有排队的作业以清除表?我无法访问数据库以删除表中的数据,因此有命令行吗?我没有失败的队列表。

laravel laravel-5 laravel-queue

2
推荐指数
2
解决办法
4765
查看次数

响应头名称“Access-Control-Allow-Origin”包含无效字符,中止请求

我有一个 Laravel 应用程序(部署在 heroku 上),我在其中收到了500 Internal Server error.

当我检查我的日志时,我在标题中看到错误方法:

响应头名称“Access-Control-Allow-Origin”包含无效字符,中止请求

我有cors middleware以下代码:

public function handle($request, Closure $next)
{
    header('Access-Control-Allow-Origin : *');
    header('Access-Control-Allow-Headers : Content-type, X-Auth-Token, Authorization, Origin');
    return $next($request);
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

heroku laravel laravel-5 laravel-middleware laravel-5.7

2
推荐指数
1
解决办法
1688
查看次数

在Laravels Eloquent中,我如何获得关系记录?

我试图拉出所有事件关系的记录,事件日期为今天.我有以下代码:

    EventStaffStation::with([
        'event' => function($query) {
            $query->where('event_date', Carbon::now()->format('d-m-Y'));
        }
    ])->where([
        'staff_id' => auth()->user()->id
    ])->has('event')->get()
Run Code Online (Sandbox Code Playgroud)

这给了我一个记录event_staff_stations但它将事件关系设置为null.如果关系为null,我希望不返回记录.

基本上如果event_staff_station记录不适合今天,那么我不希望它返回.我只对今天活动日的记录感兴趣.

任何帮助表示赞赏.

php laravel eloquent laravel-5

2
推荐指数
1
解决办法
50
查看次数

如何在Laravel 5.2中访问$ _GET

我在Laravel 5.1上有一个小项目

我将其更新为5.2

现在我从我的模型中得到了这个错误:

Class 'Input' not found

这是代码:

if ( \Input::get('angular') ) { ... }

我在哪里可以找到它?

我是Laravel的新手

而我没有找到它

谢谢您的帮助

laravel laravel-5.1 laravel-5.2

1
推荐指数
1
解决办法
2229
查看次数