Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何防止在Laravel刀片文件的foreach循环中显示重复?_Php_Laravel_Loops_Foreach_Code Duplication - Fatal编程技术网

Php 如何防止在Laravel刀片文件的foreach循环中显示重复?

Php 如何防止在Laravel刀片文件的foreach循环中显示重复?,php,laravel,loops,foreach,code-duplication,Php,Laravel,Loops,Foreach,Code Duplication,这是我的查看刀片文件: 这是我的表格数据: 这是我的视图代码: <form action="" method="post"> @csrf @foreach($options as $opt) <label for="siteName">site name</label> <input type="text" id="siteName" name="siteName" value="{{$opt->o_name('siteName')}}"

这是我的查看刀片文件:

这是我的表格数据:

这是我的视图代码:

<form action="" method="post">
@csrf
@foreach($options as $opt)

 <label for="siteName">site name</label>
 <input type="text" id="siteName" name="siteName" value="{{$opt->o_name('siteName')}}">

 <label for="siteURL">site url</label>
 <input type="text" id="siteURL" name="siteURL" value="{{$opt->o_name('siteURL')}}">

@endforeach

 <input type="submit" value="save">
</form>
这是我的班级代码:

protected $guarded = [];

public function o_name($val)
{
      $valss = DB::table('options')
                   ->select('o_value')
                   ->where('o_name', '=', $val)
                   ->first();
      return $valss->o_value;
}
我想在视图中显示一次不重复的数据和输入表单@
我该怎么做?我的密码有什么问题?

更新控制器代码并更换

$options = Option::all();

新代码将如下所示

public function viewOptions(){
    $options_all = Option::all();
    $options=$options_all[0];
    return view('view/options', compact('options'));
}

更新控制器代码并替换

$options = Option::all();

新代码将如下所示

public function viewOptions(){
    $options_all = Option::all();
    $options=$options_all[0];
    return view('view/options', compact('options'));
}
试试这个

 <label for="siteName">site name</label>
 <input type="text" id="siteName" name="siteName" value="{{$option->o_name('siteName')}}">

 <label for="siteURL">site url</label>
 <input type="text" id="siteURL" name="siteURL" value="{{$option->o_name('siteURL')}}">
试试这个

 <label for="siteName">site name</label>
 <input type="text" id="siteName" name="siteName" value="{{$option->o_name('siteName')}}">

 <label for="siteURL">site url</label>
 <input type="text" id="siteURL" name="siteURL" value="{{$option->o_name('siteURL')}}">

我想是因为您在
@foreach
和foreach循环中使用了两个输入

试试这个:

<form action="" method="post">
@csrf
@foreach($options as $opt)

 <label for="{{ $opt->o_name }}">{{ $opt->o_name }}</label>
 <input type="text" id="{{ $opt->o_name }}" name="{{ $opt->o_name }}" value="{{ $opt->o_value }}">

@endforeach

 <input type="submit" value="save">
</form>
或使用查询生成器:

$options = Option::where(function ($q) {
     $q->where('o_name', 'siteName')->orWhere('o_name', 'siteUrl');
})->get();

另一种方法是使用laravel作用域,我认为这是因为在
@foreach
和foreach循环中使用了两个输入

试试这个:

<form action="" method="post">
@csrf
@foreach($options as $opt)

 <label for="{{ $opt->o_name }}">{{ $opt->o_name }}</label>
 <input type="text" id="{{ $opt->o_name }}" name="{{ $opt->o_name }}" value="{{ $opt->o_value }}">

@endforeach

 <input type="submit" value="save">
</form>
或使用查询生成器:

$options = Option::where(function ($q) {
     $q->where('o_name', 'siteName')->orWhere('o_name', 'siteUrl');
})->get();


另一种方法是使用laravel作用域,这是因为您正在循环通过选项集合。请尝试使用此
选项::all()->first()
@MaulikShah,当我使用
选项::all()->first()
时,它会说
调用布尔值上的成员函数o_name()
;@HirenGohel当我使用
选项::select('*')->first()时,它说
调用布尔函数上的成员函数o_name()
我认为这与类方法o_name有关,之所以会这样,是因为您是通过选项集合进行循环的。请尝试使用此
选项::all()->first()
@MaulikShah,当我使用
选项::all()->first()
在控制器代码中尝试此选项:
选项::选择('*'))->第一个()
@HirenGohel当我使用
选项::select('*')->first()时,它说
调用布尔函数上的成员函数o_name()
我认为它与类方法o_name和新的控制器代码有关,它说:
调用布尔函数上的成员函数o_name()
和新的控制器代码它说:
调用布尔函数上的成员函数o_name()
添加你的$vals
on value它像这样打印>>dd$vals返回这个:::
{{{281+“o#u value”:“name”}
我不知道为什么会发生这种情况,但是当你添加选项时,它只有一个数据,但仍然会打印这么多次。dd你的$vals。用你的代码
{{{$option->o#o#u name('siteName')}
on value它像这样打印图像>>dd$vals返回:::
{281+“o#u value”:“name”}
我不知道为什么会发生这种情况,但当你添加选项时,它只有一个数据,但仍然会打印这么多次。你的代码还可以,但我想通过在view.blade文件中传递o#u name值来显示o#u值,不加载选项中的所有行table@is有没有办法显示自定义输入标签名而不是表o_名称?例如,第o_行中的名称是表上的siteName,但我想在视图中显示输入标签上的站点标题?请在telegram id>>Sibche2013I上向我发送消息我已经对自定义标签名称使用了laravel本地化您的代码正常,但我想通过在view.blade文件中传递o_名称值来显示o_值,而不是在选项中加载所有行table@is有没有办法显示自定义输入标签名而不是表o_名称?例如,第o_行中的名称是表上的siteName,但我想在视图中显示输入标签上的站点标题?请通过电报id>>SIBCHE2013MSG发送给我,我已将laravel本地化用于自定义标签名称