Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 17

0
votes
answers
24 views
+10

如何檢查兩張表之間的雄辯關係?

0

我有兩個表,客戶和用戶在用戶表我:如何檢查兩張表之間的雄辯關係?

ID

電子郵件

密碼

在客戶我有

CUSTOMER_ID

的package_id

當有人註冊,在用戶表中創建ID號,並在同一時間它會在客戶表:ID和CUSTOMER_ID得到ID-相同值>用戶 內部客戶模型我有

public function owners() 
{ 
return $this->belongsToMany('AppUser', 'customers'); 
} 

所有我現在需要的,如果package_id與當前CUSTOMER_ID只是登記後檢查爲空Ø [R空回..否則,如果有任何數量的迴歸 我想這在控制器但不工作

public function redirectpackage(Request $request) 
{ 
if (Auth::check() && Auth::user()->customer->package_id == 1) { 
return view('index.customer.customerpackage'); 
} 
else{ 
return view('index.customer.customerabout');  
} 
    } 
沙发
0
0

如果customers.customer_id是一個外鍵引用users.id,然後... ...:

  • 一個客戶只能有一個用戶(「屬於」)。
  • 但是用戶可以有許多客戶(「有很多」)。

因此,內部owners()belongsTo()替換belongsToMany()

public function owners() 
{ 
    return $this->belongsTo('AppUser', 'customer_id'); 
} 

而且User模型中,添加到Customer模型的關係:

class User extends Model 
{ 
    public function customers() 
    { 
     return $this->hasMany('AppCustomer', 'customer_id'); 
    } 
} 

現在你可以檢查用戶有一個在customers()關係給出package_id

Auth::user()->customers()->where('package_id', 1)->count(); 

或者,您可以使用isEmpty()而不是count()

0
votes
answers
22 views
+10

按日期排序的退貨數據

1

我有一個函數可以返回每天的銷售計數。這種方法的問題是,我希望將數據按日期存儲,但我讓他們按以下順序:按日期排序的退貨數據

01-Dec 
02-Dec 
03-Dec 
03-Nov 
04-Nov 
05-Nov 
etc. 

我明白爲什麼出現這種情況,但我不知道如何解決它。我可以用startofmonth代替subMonth(1),這會部分解決我的問題,但這不是我想要的。我反而希望返回訂購的最後30天。

return DB::table('sales') 
     ->select(DB::RAW('DATE_FORMAT(created_at, "%d-%M") as date'), DB::raw('COUNT(*) as count')) 
     ->where('created_at', '>=', Carbon::now()->subMonth(1)) 
     ->orderBy('date') 
     ->groupBy('date') 
     ->get(['date', 'count']) 
     ->keyBy('date') 
     ->transform(function ($data) { 
      return $data->count; 
     }); 

我也試過orderBy('created_at'),但它給了我下面的錯誤,我想避免更改sql模式。

Syntax error or access violation: 1055 Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'x.sales.created_at' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 

編輯: 按照要求,該return語句

select DATE_FORMAT(created_at, "%d-%M") as date, COUNT(*) as count from `sales` where `created_at` >= ? group by `date` order by `date` asc 
+0

請張貼生成的SQL – lad2025

+0

@ lad2025我只是沒:) – George

+0

請嘗試:' - > GROUPBY( '1')'代替' - > GROUPBY( '日')' – lad2025

沙发
0
0

的SQL查詢我沒有你的框架查詢語法太多的想法。但是您可以在顯示數據時再添加一列DATE_FORMAT(created_at,「%Y%m%d」)作爲order_column並應用順序,並按列「order_column」分組,並使用列「data」。

select DATE_FORMAT(created_at, "%Y%m%d") AS order_column, DATE_FORMAT(created_at, "%d-%M") as date, COUNT(*) as count from `sales` where `created_at` >= ? group by `order_column` order by `order_column` asc 



return DB::table('sales') 
     ->select(DB::RAW('DATE_FORMAT(created_at, "%Y%m%d") AS order_column'),DB::RAW('DATE_FORMAT(created_at, "%d-%M") as date'), DB::raw('COUNT(*) as count')) 
     ->where('created_at', '>=', Carbon::now()->subMonth(1)) 
     ->orderBy('order_column') 
     ->groupBy('order_column') 
     ->get(['date', 'count']) 
     ->keyBy('date') 
     ->transform(function ($data) { 
      return $data->count; 
     }); 
+0

Yeap,這與獲取原始'created_at'值相同。我可以按原始的created_at排序,但是我得到了上面提到的錯誤(sql_mode = only_full_group_by)和兩種情況。我想我將不得不改變mysql設置來完成這個... – George

板凳
0
0

如果你在2個步驟中做到這一點,它是否工作?

第一步,在其中創建日期列:

$step1 = DB::table('sales') ->select(DB::RAW('DATE_FORMAT(created_at, "%d-%M") as date'))) 
->where('created_at', '>=', Carbon::now()->subMonth(1)) 
->orderBy('date') 
->get(['date', 'count']) 

之後,你做agregation:

$step2 = $step1->select('date'), DB::raw('COUNT(date) as count')) 
->groupBy('date') ->get(['date', 'count']) ->keyBy('date') 

希望它能幫助!

0
votes
answers
16 views
+10

Laravel 5.0讀取Excel文件時出錯

0

我在工作Laravel 5.0。我的任務是關於讀取Excel/CSV文件等等。 但由於錯誤致命錯誤而無法繼續。Laravel 5.0讀取Excel文件時出錯

Fatal error: Class 'PHPExcel_Shared_Font' not found in /home/content/28/10055228/html/distribution/config/excel.php on line 182

composer.json

{ 
    "name": "laravel/laravel", 
    "description": "The Laravel Framework.", 
    "keywords": ["framework", "laravel"], 
    "license": "MIT", 
    "type": "project", 
    "require": { 
     "laravel/framework": "5.0.*", 
     "maatwebsite/excel": "~2.1.0", 
     "phpoffice/phpexcel": "1.8.1" 
    }, 
    "require-dev": { 
     "phpunit/phpunit": "~4.0", 
     "phpspec/phpspec": "~2.1" 
    }, 

/config/app.php(供應商和別名陣列)

'providers' => [ 

    /* 
    * Laravel Framework Service Providers... 
    */ 
    'IlluminateFoundationProvidersArtisanServiceProvider', 
    'IlluminateAuthAuthServiceProvider', 
    'IlluminateBusBusServiceProvider', 
    'IlluminateCacheCacheServiceProvider', 
    'IlluminateFoundationProvidersConsoleSupportServiceProvider', 
    'IlluminateRoutingControllerServiceProvider', 
    'IlluminateCookieCookieServiceProvider', 
    'IlluminateDatabaseDatabaseServiceProvider', 
    'IlluminateEncryptionEncryptionServiceProvider', 
    'IlluminateFilesystemFilesystemServiceProvider', 
    'IlluminateFoundationProvidersFoundationServiceProvider', 
    'IlluminateHashingHashServiceProvider', 
    'IlluminateMailMailServiceProvider', 
    'IlluminatePaginationPaginationServiceProvider', 
    'IlluminatePipelinePipelineServiceProvider', 
    'IlluminateQueueQueueServiceProvider', 
    'IlluminateRedisRedisServiceProvider', 
    'IlluminateAuthPasswordsPasswordResetServiceProvider', 
    'IlluminateSessionSessionServiceProvider', 
    'IlluminateTranslationTranslationServiceProvider', 
    'IlluminateValidationValidationServiceProvider', 
    'IlluminateViewViewServiceProvider', 

    /* 
    * Application Service Providers... 
    */ 
    'AppProvidersAppServiceProvider', 
    'AppProvidersBusServiceProvider', 
    'AppProvidersConfigServiceProvider', 
    'AppProvidersEventServiceProvider', 
    'AppProvidersRouteServiceProvider', 
    'MaatwebsiteExcelExcelServiceProvider', 

], 

/* 
|-------------------------------------------------------------------------- 
| Class Aliases 
|-------------------------------------------------------------------------- 
| 
| This array of class aliases will be registered when this application 
| is started. However, feel free to register as many as you wish as 
| the aliases are "lazy" loaded so they don't hinder performance. 
| 
*/ 

'aliases' => [ 

    'App'  => 'IlluminateSupportFacadesApp', 
    'Artisan' => 'IlluminateSupportFacadesArtisan', 
    'Auth'  => 'IlluminateSupportFacadesAuth', 
    'Blade'  => 'IlluminateSupportFacadesBlade', 
    'Bus'  => 'IlluminateSupportFacadesBus', 
    'Cache'  => 'IlluminateSupportFacadesCache', 
    'Config' => 'IlluminateSupportFacadesConfig', 
    'Cookie' => 'IlluminateSupportFacadesCookie', 
    'Crypt'  => 'IlluminateSupportFacadesCrypt', 
    'DB'  => 'IlluminateSupportFacadesDB', 
    'Eloquent' => 'IlluminateDatabaseEloquentModel', 
    'Event'  => 'IlluminateSupportFacadesEvent', 
    'File'  => 'IlluminateSupportFacadesFile', 
    'Hash'  => 'IlluminateSupportFacadesHash', 
    'Input'  => 'IlluminateSupportFacadesInput', 
    'Inspiring' => 'IlluminateFoundationInspiring', 
    'Lang'  => 'IlluminateSupportFacadesLang', 
    'Log'  => 'IlluminateSupportFacadesLog', 
    'Mail'  => 'IlluminateSupportFacadesMail', 
    'Password' => 'IlluminateSupportFacadesPassword', 
    'Queue'  => 'IlluminateSupportFacadesQueue', 
    'Redirect' => 'IlluminateSupportFacadesRedirect', 
    'Redis'  => 'IlluminateSupportFacadesRedis', 
    'Request' => 'IlluminateSupportFacadesRequest', 
    'Response' => 'IlluminateSupportFacadesResponse', 
    'Route'  => 'IlluminateSupportFacadesRoute', 
    'Schema' => 'IlluminateSupportFacadesSchema', 
    'Session' => 'IlluminateSupportFacadesSession', 
    'Storage' => 'IlluminateSupportFacadesStorage', 
    'URL'  => 'IlluminateSupportFacadesURL', 
    'Validator' => 'IlluminateSupportFacadesValidator', 
    'View'  => 'IlluminateSupportFacadesView', 
    'Excel'  => 'MaatwebsiteExcelFacadesExcel', 

], 

請指正。

感謝

+1

添加'「maatwebsite/excel」:「?2.1.0」, 「phpoffice/phpexcel」:「1.8.1」'您是否運行過'composer install'?這是第一還是第二? – C2486

+0

實際上服務器是共享的,所以我無法做到這一點。並且我已經在localhost上實現了這個(工作正常)。在服務器上它出現錯誤。 –

+0

你沒有加載供應商文件夾中的所有相關文件,直到你運行'作曲家安裝' – C2486

沙发
0
0

正如@ user2486已經指出的那樣,你有你的服務器上運行composer install。即使在共享主機上,也可以安裝作曲家,但這取決於主機。你可以問他們或看看How do I install Composer on a shared hosting?

如果這是不可能的,你應該得到另一個可能的託管包。否則將整個應用程序(包括vendor文件夾)推送到您的服務器。 提示:這不推薦,但更多的解決方法。

+0

感謝這麼多的信息 –

0
votes
answers
41 views
+10

碳時區功能是不正確

0

我有以下代碼:碳時區功能是不正確

// $this->date_from = '11/01/2017'; 
// $this->date_to = '11/30/2017'; 

$this->where_date_from = Carbon::parse($this->date_from)->tz('America/Toronto')->startOfDay()->timestamp; 
$this->where_date_to = Carbon::parse($this->date_to)->tz('America/Toronto')->endOfDay()->timestamp; 

這產生完全innacturate時間戳。它似乎實際上是從UTC減去了兩倍的偏移量。

然而,當我使用以下命令:

date_default_timezone_set('America/Toronto'); 
$this->where_date_from = strtotime($this->date_from.' 00:00:00'); 
$this->where_date_to = strtotime($this->date_to.' 23:59:59'); 

它完美。

這是怎麼發生的?我想用碳來達到這個目的,所以我不必與date_default_timezone_set混淆。

沙发
0
0

這裏的問題是運行tz。事實上,它不會讓你的日期在給定時區的情況下解析,但它會將日期從當前時區轉換爲你給出的時區。假設你有UTCtimezoneapp.php文件(什麼是默認的),你現在做的:

$this->where_date_from = Carbon::parse($this->date_from, 'UTC')->tz('America/Toronto')->startOfDay()->timestamp; 

所以你承擔的日期是UTC時區,然後你將它轉換成美國/多倫多什麼明顯不是你想要的。

你應該做的分析日期時,像這樣正在通過時區:

$this->where_date_from = Carbon::parse($this->date_from, 'America/Toronto')->startOfDay()->timestamp; 
$this->where_date_to = Carbon::parse($this->date_to, 'America/Toronto')->endOfDay()->timestamp; 
0
votes
answers
16 views
+10

使用Laravel 5.3查詢生成器複製子查詢的Eloquent ORM數據結構

1

我想複製使用Eloquent ORM時獲得的結果集,除了使用Laravel Query Builder。基本上使用這段代碼,我可以讓包出現在產品中,這樣當我將它們循環到視圖中時,我可以進一步循環每個產品中的包。似乎很基本的權利(見下面的結果集)。使用Laravel 5.3查詢生成器複製子查詢的Eloquent ORM數據結構

 $get_posts_for_product = Product::where('active', 1) 
       ->with('packs') 
       ->get()->toArray(); 

enter image description here

我一直在使用Query Builder來得到這個工作,嘗試了一些辦法,但我認爲這將內嵌加入包。

什麼是使用查詢生成器得到這個相同的數組結構的最佳方式,我知道結果集是一個不同類型的數組,這是很好,但對我的項目來說,它必須在這一點上使用查詢生成器完成。

謝謝。

沙发
0
1

我會說,這就是爲什麼你有雄辯:你不必擔心如何讓這些關係在一起。

但是櫃面你真的想達到同樣的結果,我會用兩個表usersmessages演示這一點:

第1種方法:

檢索用戶和通過查詢關係數據庫改造它:

$result = DB::table('users')->get()->transform(function ($user){ 
     $user->messages = DB::table('messages')->where('user_id', $user->id)->get(); 
     return $user; 
}); 

下行:擁有許多用戶意味着消息表上有很多數據庫查詢。

上行:以下代碼寫

第二方法:

$users = DB::table('users')->get(); 
$messages = DB::table('messages')->whereIn('user_id', $users->pluck('id')->toArray())->get(); 

$result = $users->transform(function ($user) use ($messages){ 
     $user->messages = $messages->where('user_id', $user->id)->values(); 
     return $user; 
}); 

使用的用戶所有的ID來查詢消息檢索這兩個表下行:ne編輯仍然轉換它。

上行:較少的數據庫行程。即只有兩個查詢。

$user = DB::table('users')->get(); 
$messages = DB::table('messages')->whereIn('user_id', $user->pluck('id')->toArray()) 
      ->get() 
      ->groupBy('user_id'); 

$result = $user->transform(function ($user) use ($messages){ 
    $user->messages = $messages[$user->id]; 
    return $user; 
}); 

缺點:

3方法

轉化users結果時看起來像第二個不同之處在於,你可以通過 'user_ID的' 組消息,那麼你做任何額外的過濾器:與2相同。

上行:轉換用戶時無需額外過濾器。

其他方法

查詢然後變換的響應時加入對用戶和消息,或者簡單地使用它,因爲它是。

PS:Eloquent使用查詢生成器。

答案是可以更新的。

+1

雄辯隱藏這兩個步驟給你...優秀的答案... – Serge

+1

優秀的答案。謝謝你的幫助。 – Thinkpad

0
votes
answers
34 views
+10

如何僅在鑽取餅圖上顯示數據標籤?

2

嘿傢伙我已經做了一個餅圖鑽取到一個餅圖,所以有一種叫做「plotOptions」和「datalabels」的東西,datalabels顯示每個bar/slice的值,但是我希望datalabel只顯示在餅圖而不是條形圖目前它顯示在這樣的條形圖上: enter image description here如何僅在鑽取餅圖上顯示數據標籤?

正如你可以看到值「264.50%」和「164.50」,我不想顯示該值。 但我不能刪除代碼中的數據標籤,否則它不會在我的餅圖上顯示我。

所以我怎樣才能從條形圖中刪除它?我的代碼如下:

<script> 
 

 
Highcharts.chart('container', { 
 
    chart: { 
 
     type: 'column' 
 
    }, 
 
    title: { 
 
     text: 'Chart' 
 
    }, 
 
    xAxis: { 
 
     type: 'category' 
 
    }, 
 
    yAxis: { 
 
     title: { 
 
      text: '' 
 
     } 
 

 
    }, 
 
    legend: { 
 
     enabled: false 
 
    }, 
 
    plotOptions: { 
 
     series: { 
 
      borderWidth: 0, 
 
      dataLabels: { 
 
       enabled: true, 
 
       formatter: function() { 
 
        var mychart = $('#container').highcharts(); 
 
        var mytotal = 0; 
 

 
        for (i = 0; i < mychart.series.length; i++) { 
 
         if (mychart.series[i].visible) { 
 
          mytotal = {!! $countTotalRecord['low confidence'] !!} + {!! $countTotalRecord['no answer'] !!} + {!! $countTotalRecord['missing intent'] !!} + {!! $countTotalRecord['webhook fail'] !!}; 
 
         } 
 
        } 
 
        var pcnt = (this.y/mytotal) * 100; 
 
        return Highcharts.numberFormat(pcnt) + '%'; 
 
       } 
 
      } 
 
     } 
 
    }, 
 

 
    tooltip: { 
 
     // headerFormat: '<span style="font-size:11px">{series.name}</span><br>', 
 
     pointFormat: '{point.name}: <b>{point.y}</b>' 
 
    }, 
 

 
    credits:{ 
 
     enabled: false 
 
    }, 
 

 
    series: [{ 
 
     name: 'front', 
 
     colorByPoint: true, 
 
     data: [{ 
 
      name: 'Total', 
 
      y: {!! $countTotalRecord['total'] !!}, 
 
      drilldown: 'total' 
 
     }, { 
 
      name: 'Match', 
 
      y: {!! $countTotalRecord['match'] !!}, 
 
      drilldown: 'match' 
 
     }] 
 
    }], 
 
    drilldown: { 
 
     series: [{ 
 
      name: 'total', 
 
      id: 'total', 
 
      type:'pie', 
 
      data: [ 
 
       [ 
 
        'Low Confidence', 
 
        {!! $countTotalRecord['low confidence'] !!} 
 
       ], 
 
       [ 
 
        'No Answer', 
 
        {!! $countTotalRecord['no answer'] !!} 
 
       ], 
 
       [ 
 
        'Missing Intent', 
 
        {!! $countTotalRecord['missing intent'] !!} 
 
       ], 
 
       [ 
 
        'Webhook Fail', 
 
        {!! $countTotalRecord['webhook fail'] !!} 
 
       ] 
 
      ] 
 
     }] 
 
    } 
 
}); 
 

 
</script>

沙发
0
1

您可以通過dataLables讓你我想知道我看到數據的任何水平的一系列虛假標籤

series: [{ 
    name: 'Brands', 
    colorByPoint: true, 
    data: [{....}], 
    dataLabels: { 
      enabled: false, 
     } 
    }], 

http://jsfiddle.net/fw3bdjzw/

+0

是我也知道這種方式,但我喜歡我說我想要datalabelsto只顯示我的餅圖而不是條形圖。如果我將其改爲false,那麼它也不會在餅圖上顯示! @patata – anon

+0

試試這個http://jsfiddle.net/fw3bdjzw/2/。解釋我你想要什麼 – Patata

+0

是啊,這是即時通訊使用然後我調整它。你有沒有試過我提供的代碼?並看到圖片我想從上面的圖片中刪除的百分比 – anon

0
votes
answers
38 views
+10

Laravel Socialite Facebook登錄錯誤:需要參數app_id

2

試圖讓社交網站在我的應用程序上工作。 Facebook返回The parameter app_id is required錯誤。Laravel Socialite Facebook登錄錯誤:需要參數app_id

路線:

Route::get('/login/facebook', 'CommendMeHttpControllers[email protected]'); 

Route::get('/login/facebook/callback', 'CommendMeHttpControllers[email protected]'); 

services.php

'facebook' => [ 
    'client_id' => env('426129694395672'), 
    'client_secret' => env('840fca14fc9fac4b592cd49f285c2ee9'), 
    'redirect' => 'http://localhost/login/facebook/callback', 
], 

AuthController.php

public function redirectToProvider() { 
    return Socialite::driver('facebook')->redirect(); 
} 

public function handleProviderCallback() { 
    $user = Socialite::driver('facebook')->user(); 

    $user->name; 
} 

嘗試當/login/facebook路由,facebook返回此錯誤。 這是怎麼回事?

+0

那麼顯然沒有'app_id' – nogad

+0

是不是'services_id'在services.php? –

沙发
0
3

要麼使用作爲

'client_id' => '426129694395672', 

或者

'client_id' => env("FB_APP",'426129694395672'), 

,並使用FB_APP = '426129694395672'.env文件

相反

'client_id' => env('426129694395672'), 

使用env('VarName').env文件

+0

doh!是的,就是這樣。 –

板凳
0
0

假設獲得命名爲VarName環境變量的值,你有你的.env下列文件:

CLIENT_ID=426129694395672 
CLIENT_SECRET=840fca14fc9fac4b592cd49f285c2ee9 

在services.php的facebook[]應該是這樣的:

'facebook' => [ 
    'client_id' => env('CLIENT_ID'), 
    'client_secret' => env('CLIENT_SECRET'), 
    'redirect' => 'http://localhost/login/facebook/callback', 
], 
0
votes
answers
35 views
+10

Laravel收銀員無需訂閱

1

我有以下要求。應用用戶A呼叫另一個用戶B,並且如果用戶B出席呼叫,則必須從他的信用卡中扣除1美元。卡信息將在註冊步驟中收集。Laravel收銀員無需訂閱

該流程沒有涉及訂閱。我需要使用Laravel收銀員嗎?

+0

想要做即時付款嗎? – madalinivascu

+0

你最好用定期付款 – madalinivascu

+0

不需要即時付款。 –

沙发
0
0

答:您不需要使用Laravel收銀員進行「一次性」收費。

在他們的document他們清楚地提到以下。

If you're only performing "one-off" charges and do not offer subscriptions, you should not use Cashier. Instead, use the Stripe and Braintree SDKs directly.

0
votes
answers
36 views
+10

我想在laravel查詢中找到前10位最喜愛的路線

2

我有兩張名爲'favorites'和'trail'的表。我想顯示用戶的前10名最喜愛的路線。我在他們之間建立了「多對多」的關係。但是,我不知道如何進行查詢。什麼應該是正確的查詢。有人會幫助我找到合適的查詢。沒有關係,我想是這樣這個 -我想在laravel查詢中找到前10位最喜愛的路線

$favorites = DB::table('favorites') 
            ->join('trails', 'trails.id', '=', 'favorites.trail_id') 
            ->select('favorites.trail_id', 'trails.name') 
            ->get(); 

第一個是 '道' 表,另一個是 '收藏夾' 波紋管 -

trails

favorites

沙发
0
1

讓高層您需要使用聚合函數來計算每條路徑的用戶數量,並根據計數結果對您的結果進行排序,然後選擇10個路徑。10

$favorites = DB::table('trails as t') 
       ->select('t.id', 't.name') 
       ->join('favorites as f', 't.id', '=', 'f.trail_id') 
       ->groupBy('t.id') 
       ->groupBy('t.name') 
       ->orderByRaw('COUNT(DISTINCT f.user_id) DESC') 
       ->limit(10) 
       ->get(); 
+0

其獲得的查詢例外 –

+0

SQLSTATE [42000]:語法錯誤或訪問衝突:1055 'trailboard.t.name' 是不是在GROUP BY(SQL:選擇't'.'id','t'。 ''''作爲't'的內容'''內部連接'收藏夾'作爲''f''''''''''''''''''''''''''' f.user_id)DESC限制10) –

+0

@ Md.RashedulHasan我已更新我的答案是該名稱不在group by子句中,可能是您正在運行5.7或'only_full_group_by'模式已啓用 –

0
votes
answers
12 views
+10

爲什麼在Laravel中使用WHERE循環獲取數據?

5

所以,這裏是我的控制器:爲什麼在Laravel中使用WHERE循環獲取數據?

$topics = Topic::where('board_id', $id)->with('user')->get(); 
$topic = Topic::find($id); 
$board = Boards::where('id', $id)->get(); 
return view('boards.show')->with('topics', $topics)->with('topic', $topic)->with('board', $board); 

這裏是生成的URL代碼:

@foreach($board as $boards) 
<a href="/topics/create/{{$boards->id}}">Create New Post</a> 
<p>No Posts Found</p> 
@endforeach 

但是如果我刪除foreach循環,它給錯誤:

Property [id] does not exist on this collection instance. 

但是,爲什麼我必須循環,如果它只從電路板表中獲得一行?任何解決方案,不爲每個循環運行?

沙发
0
4

既然你只想得到一個物體,你不需要to use get() to get a collection。使用find()通過它來得到一個對象的主鍵:

$board = Boards::find($id); 

在視圖中,您不需要使用@foreach循環:

<a href="/topics/create/{{ $board->id }}">Create New Post</a> 
+2

是的,這工作。再次感謝。 –

+1

另外你可以先使用()或採取(1) –

板凳
0
2

您可以使用Boards::find($id);Boards::findOrFail($id); insted的的Boards::where('id', $id)->get();爲得到一個單row.Also使用

return view('boards.show')->with('topics', $topics)->with('topic', $topic)->with('board', $board); 

return view('boards.show',[ 
    'topics'=> $topics, 
    'topic'=> $topic, 
    'board'=> $board 
]); 

becouse傳遞正常值使用會話,查看是不是一個好的做法

+0

並且改變路由在laravel練習 –