これは不可能です。pk ではないテーブルの一意の列にリンクしたい場合はごくわずかです。とはいえ、他のフレームワークでは主キーを変更する方法が開発されており、Laravel に対して正式にそれを要求した人はまだいません。GitHub で提案を作成すると、将来のリリースに反映される可能性があります。
あなたの特定の例を少し見てください - これは、熱心な読み込み状況で関係を使用するようになると、予期しない結果をもたらす可能性があり、関係の片側のみを説明します. 他のに属しを追加すると、逆の問題が発生します。
isbn を介して関係をセットアップできる場合があります。ただし、これは Book hasOne ISBN、ISBN belongsTo Book、ISBN hasMany Others、Other belongsTo ISBN の形式を取ります。$book->isbn->others
プロパティへのアクセスはorのようになります$other->isbn->book
。
私の最後の提案は、Book を拡張し、新しいクラスの主キーを として設定し、isbn
すべての関係をそのモデルに基づいて構築することです。理想的ではありませんが、他のソリューションよりも痛みが少ないでしょう。