Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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下拉选项值中两次显示选定值_Php_Mysql_Laravel_Eloquent_Laravel 5 - Fatal编程技术网

Php 为什么在laravel下拉选项值中两次显示选定值

Php 为什么在laravel下拉选项值中两次显示选定值,php,mysql,laravel,eloquent,laravel-5,Php,Mysql,Laravel,Eloquent,Laravel 5,数据库表 jobcategories id | name 1 | IT 2 | MBA 3 | Pharmacy public function postAddJobs() { $input = Input::all(); if(isset($_POST['submit'])){ $jobdetails = JobDetail::create(array ( 'job_title' => $inpu

数据库表

 jobcategories
 id | name
 1  | IT
 2  | MBA
 3  | Pharmacy
    public function postAddJobs() {
    $input = Input::all();

    if(isset($_POST['submit'])){
    $jobdetails = JobDetail::create(array
        (   
         'job_title' => $input['title'],
          .........
        )
    );
    }
    if(isset($input['category'])){
        foreach($input['category'] as $catID){
            $jcat = JobCategory::find($catID);
            $jobdetails->jobcategory()->associate($jcat);
            $jobdetails->save();
        }
    }
    <select name="category[]" class="details">
    <option value="">{{ $jobedit->jobcategory->name }}</option>
    @foreach(JobCategory::all() as $jcat)          
       <option value="{{ $jcat->id }}">{{ $jcat->name }}</option>
    @endforeach
我通过在jobdetails表中选择下拉值来保存其中一个值

jobdetails
id | job_title | jobcategory_id | ...
1  | Software Engg. | 1

// JobDetail model
public function jobcategory()
{
    return $this->belongsTo('JobCategory');
}

// JobCategory model
public function jobdetails()
{
    return $this->hasMany('JobDetail', 'jobcategories');
}
要保存的控制器

 jobcategories
 id | name
 1  | IT
 2  | MBA
 3  | Pharmacy
    public function postAddJobs() {
    $input = Input::all();

    if(isset($_POST['submit'])){
    $jobdetails = JobDetail::create(array
        (   
         'job_title' => $input['title'],
          .........
        )
    );
    }
    if(isset($input['category'])){
        foreach($input['category'] as $catID){
            $jcat = JobCategory::find($catID);
            $jobdetails->jobcategory()->associate($jcat);
            $jobdetails->save();
        }
    }
    <select name="category[]" class="details">
    <option value="">{{ $jobedit->jobcategory->name }}</option>
    @foreach(JobCategory::all() as $jcat)          
       <option value="{{ $jcat->id }}">{{ $jcat->name }}</option>
    @endforeach
查看保存文件的位置

    <select name="category[]" class="details">
    <option value="">Select Category</option>
    @foreach(JobCategory::all() as $jcat)     
       <option value="{{ $jcat->id }}">{{ $jcat->name }}</option>
    @endforeach
    </select>
显示编辑数据库的页面

 jobcategories
 id | name
 1  | IT
 2  | MBA
 3  | Pharmacy
    public function postAddJobs() {
    $input = Input::all();

    if(isset($_POST['submit'])){
    $jobdetails = JobDetail::create(array
        (   
         'job_title' => $input['title'],
          .........
        )
    );
    }
    if(isset($input['category'])){
        foreach($input['category'] as $catID){
            $jcat = JobCategory::find($catID);
            $jobdetails->jobcategory()->associate($jcat);
            $jobdetails->save();
        }
    }
    <select name="category[]" class="details">
    <option value="">{{ $jobedit->jobcategory->name }}</option>
    @foreach(JobCategory::all() as $jcat)          
       <option value="{{ $jcat->id }}">{{ $jcat->name }}</option>
    @endforeach

{{$jobedit->jobcategory->name}
@foreach(JobCategory::all()作为$jcat)
{{$jcat->name}
@endforeach

我的问题是,它成功保存并成功编辑,但当我编辑时,从数据库中选择的值在选项值中显示两次,为什么它在下拉选项值中显示两次?如果此保存和编辑过程不完美,请帮助我展示保存和编辑的良好过程。请帮助,我是学习laravel的新手。

它在您的数据库中列出了两次吗?一篇文章必须属于一个选项值…但我想用选项值编辑的每篇文章,该文章的选定值都会显示两次@Ortix92您没有回答我的问题是的,它可以是数据库中的两倍或更多,因为一篇文章可以分为许多类别,但它保留在不同的文章中。。。清楚吗@好吧,你的答案就在那里。如果同一事物属于多个模型,则不应在数据库中多次保存该事物。您应该使用关系和透视表将值分配给所需的模型。