无法使用 laravel 5.5 建立 laravel 关系

Posted

技术标签:

【中文标题】无法使用 laravel 5.5 建立 laravel 关系【英文标题】:Unable to do laravel relationships using laravel 5.5 【发布时间】:2018-10-06 20:38:25 【问题描述】:

我在存储 id 和从两个不同的表中显示它们的值时遇到问题我有 1 个表 business_master 和另一个表是 page_master 我已经将 business_name 列与 page_url 列结合起来,如果我首先添加我的业务和页面,它们在 page_master 表上可用成功结合这两个值的时间,因为一个企业可以有很多页面,如果我只添加第二次页面,我无法看到带有 page_url 列的 business_url。

我的页面模型:

class PageList extends Model
      
protected $table = 'page_master';


protected $fillable = ['business_id', 'page_url', 'page_name'];


public function business()

    return $this->hasOne('App\Business','business_id');


   

在我看来:

 <td>optional($value->business)->business_url.spikesales.io/$value->page_url</td>

如果我添加 business_url 和 page_url,这是我第一次退出

    hussain.spikesales.io/house

然后如果我只添加页面,输出就是这样的

   .spikesales.io/hello

一个企业可以有很多页面,它也应该附加business_ url,但我找不到解决方案:

任何帮助将不胜感激!

    public function pageListHere()

    $list = PageList::all();
    return view('page-list',compact('list'));

【问题讨论】:

您应该将控制器代码发布到您正在获取数据并将其传递给视图的位置。 我添加了控制器代码,请看。 【参考方案1】:

你必须像这样改变你的控制器代码:

$list = PageList::select('*');
$list->with(
                array('business'=>function($query)
                    $query->select('*');
                ));
$pageList = $list->get();
return view('page-list',compact('pageList'));

变量 $pageList 将包含该表的所有行以及相关的业务表行。

【讨论】:

以及我将在我的视图中传递哪个变量 optional($value->business)->business_url.spikesales.io/$value->page_url这里 我在我的视图 $list 中有 foreach 循环作为 $value 请查看更新后的答案。并在循环中使用$pageList 更改您的变量名,它将起作用。

以上是关于无法使用 laravel 5.5 建立 laravel 关系的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.5 无法使用身份验证脚手架登录

无法在 Laravel 5.5 中使用 axios 获取记录

Laravel 5.5:laravel.log 无法打开:权限被拒绝

Laravel 5.5发送邮件

Laravel 5.5 无法在表单请求类中制作验证器

Laravel 5.5:Storage::put,file_put_contents 错误:无法打开流:没有这样的文件或目录